gsutil 复制到存储失败
Posted
技术标签:
【中文标题】gsutil 复制到存储失败【英文标题】:gsutil copy to storage failing 【发布时间】:2014-05-03 22:32:10 【问题描述】:我在 us-central1-a 区域的一个实例中工作,我无法复制约 200GB 的文件。
我试过了:
gsutil -m cp -L my.log my.file gs://my-bucket/ gsutil -m cp -L my.second.log my.file gs://my-bucket2/经过几次“追赶”后,我收到以下错误:
CommandException:一些临时组件未成功上传。请重试此上传。 CommandException: X 文件/对象无法传输。
有什么线索吗?
谢谢
【问题讨论】:
【参考方案1】:如果 gsutil 的 parallel composite uploads feature 未能上传至少一个文件片段,您会看到这条消息。
几个问题...
在看到此消息后,您是否已尝试再次执行此上传?
如果此错误仍然存在,请提供来自gsutil -d cp...
的堆栈跟踪
如果您一直看到此错误并需要立即修复(如果这是并行上传的错误),您可以在您的 boto 配置的 GSUtil
部分中设置 parallel_composite_upload_threshold=0
以禁用并行上传。
【讨论】:
1.是的,很多次 2. 我现在就在做。感谢您的回答。在将其粘贴到此处之前,我必须在此堆栈跟踪中清理什么? 为了安全起见 - 请编辑任何授权标头、不记名令牌等,然后将其发送至 gs-team@google.com(带有指向此 *** 问题的链接),而不是在此处发布。 您好,抱歉拖了这么久。由于问题出现在一个实例中并且它产生了成本,我已经将磁盘迁移到了一个开发实例,并且我能够从中复制文件,所以我想我们永远不会知道问题是什么。感谢您的帮助,如果再次发生,我会带来诊断/调试输出。gsutil -m
可能会产生这样的问题有什么原因吗?我分别在171个实例中做了171个转账,80个有这样的问题CommandException: 1 file/object could not be transferred.
。而且它不会告诉哪个文件无法传输。还有,是不是说gsutil cp
比gsutil -m
安全,就不会出现这样的问题?
已知严重错误github.com/GoogleCloudPlatform/gsutil/issues/279 简而言之....在您完成大型工作时使用 -L 选项【参考方案2】:
我在使用 gsutil 时也有同样的经历。我通过安装 crcmod 修复了。
首先运行您在使用调试标志时遇到问题的命令,例如:
gsutil -d -m cp gs://<path_to_file_in_bucket>
在输出中我可以看到:
CommandException: Downloading this composite object requires integrity checking with CRC32c, but your crcmod installation isn't using the module's C extension, so the hash computation will likely throttle download performance. For help installing the extension, please see "gsutil help crcmod".
To download regardless of crcmod performance or to skip slow integrity checks, see the "check_hashes" option in your boto config file.
NOTE: It is strongly recommended that you not disable integrity checks. Doing so could allow data corruption to go undetected during uploading/downloading.
您可以按照 google 此处的说明为您的特定操作系统安装 crcmod:https://cloud.google.com/storage/docs/gsutil/addlhelp/CRC32CandInstallingcrcmod
【讨论】:
以上是关于gsutil 复制到存储失败的主要内容,如果未能解决你的问题,请参考以下文章
从存储到计算实例运行容器的`gsutil cp`不会复制文件
如何在使用 gsutil 保留 ACL 的同时将文件从 Google Cloud Storage 存储桶 1 复制到存储桶 2
如果存储桶路径的第一个反斜杠丢失,gsutil 会将我的文件复制到哪里?