2016-06-29 13 views
4

Ich halte die folgende Fehlermeldung zu sehen, wenn gsutilResumableUploadAbortException auf gsutil

ResumableUploadAbortException: Upload complete with 6275 additional bytes left in stream 

Der Befehl ist sehr einfach, so etwas wie

gsutil cp -r <source_path> gs://<target-bucket>/<target_path> 

mit etwa 80 Dateien in <source_path>. Es gibt auch verschachtelte Ordner in <source_path>. Ein Wechsel von gsutil cp zu gsutil -m cp macht keinen Unterschied. Und dieser Fehler ist reproduzierbar, wenn ich ihn in einem Python-Skript zusammen mit viel anderem Code ausführe. Wenn ich den Befehl jedoch separat in bash ausführe, scheint es kein Problem zu haben. Ich frage mich also, was möglicherweise der Grund für eine ResumableUploadAbortException sein könnte, bitte?

Tail of Debug-Ausgabe mit gsutil -D -m cp

total_bytes_transferred: 794750002 
Total bytes copied=794750002, total elapsed time=7.932 secs (95.55 MiBps) 
DEBUG: Exception stack trace: 
    Traceback (most recent call last): 
     File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/__main__.py", line 565, in _RunNamedCommandAndHandleExceptions 
     parallel_operations, perf_trace_token=perf_trace_token) 
     File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/command_runner.py", line 280, in RunNamedCommand 
     return_code = command_inst.RunCommand() 
     File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/commands/cp.py", line 998, in RunCommand 
     self.op_failure_count, plural_str, plural_str)) 
    CommandException: CommandException: 1 file/object could not be transferred. 
+0

Welche Version von Gsutil verwenden Sie? –

+0

@TravisHobrla, 'gsutil Version: 4.19' – zyxue

+0

Dass Sie dies nicht in bash reproduzieren können, lässt es am wahrscheinlichsten erscheinen, dass etwas in Ihrem Python-Skript immer noch in eine der Dateien schreibt oder dass die Datei vorher nicht geleert wurde Du nennst 'gsutil'. Wie rufst du gsutil von Python an? Sie können ein 'gsutil -Dcp'-Protokoll sammeln, um zu sehen, ob die Bytebereiche, die gsutil zu senden versucht, ursprünglich mit Ihren erwarteten Dateigrößen übereinstimmen. –

Antwort

0

Vergewissern Sie sich eine Datei übertragen, die während des Übertragungsvorgangs geändert wird. In meinem Fall ist das Problem, dass ich die Ausgabe in eine Protokolldatei umleite, während die Protokolldatei auch in die Cloud übertragen wird, was das obige Problem verursacht.