gsutil 上的 ResumableUploadAbortException
ResumableUploadAbortException on gsutil
我在使用 gsutil
时一直看到以下错误
ResumableUploadAbortException: Upload complete with 6275 additional bytes left in stream
命令很简单,类似
gsutil cp -r <source_path> gs://<target-bucket>/<target_path>
里面有大约 80 个文件 <source_path>
。 <source_path>
中也有嵌套文件夹。将 gsutil cp
更改为 gsutil -m cp
没有任何区别。当我 运行 它与许多其他代码一起在 python 脚本中时,这个错误是可重现的。但是,当我运行单独在bash中执行命令时,似乎没有任何问题。所以我想知道 ResumableUploadAbortException 可能是什么原因?
带有 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.
确保您正在传输的文件在传输过程中发生了更改。就我而言,问题是我将输出重定向到日志文件,同时日志文件也在传输到云端,这导致了上述问题。
使用 WSL2?
WSL 有一个 well known issue 导致时间不同步。
就我而言,似乎是时间不同步导致 ResumableUploadAbortException
。
要修复它,只需从 WSL 2 同步时间:sudo nohup watch -n 10 ntpdate time.windows.com > /dev/null 2>&1 &
gsutil
命令建议“删除跟踪器文件”来解决问题。这确实为我解决了问题:
rm -rf ~/.gsutil/tracker-files
我在使用 gsutil
ResumableUploadAbortException: Upload complete with 6275 additional bytes left in stream
命令很简单,类似
gsutil cp -r <source_path> gs://<target-bucket>/<target_path>
里面有大约 80 个文件 <source_path>
。 <source_path>
中也有嵌套文件夹。将 gsutil cp
更改为 gsutil -m cp
没有任何区别。当我 运行 它与许多其他代码一起在 python 脚本中时,这个错误是可重现的。但是,当我运行单独在bash中执行命令时,似乎没有任何问题。所以我想知道 ResumableUploadAbortException 可能是什么原因?
带有 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.
确保您正在传输的文件在传输过程中发生了更改。就我而言,问题是我将输出重定向到日志文件,同时日志文件也在传输到云端,这导致了上述问题。
使用 WSL2?
WSL 有一个 well known issue 导致时间不同步。
就我而言,似乎是时间不同步导致 ResumableUploadAbortException
。
要修复它,只需从 WSL 2 同步时间:sudo nohup watch -n 10 ntpdate time.windows.com > /dev/null 2>&1 &
gsutil
命令建议“删除跟踪器文件”来解决问题。这确实为我解决了问题:
rm -rf ~/.gsutil/tracker-files