【发布时间】:2018-02-14 20:22:48
【问题描述】:
我们正在将我们的项目归档在一个存储桶中(使用gsutil rsync)。我的任务是验证每次上传后,必须对本地项目文件夹和上传到存储桶的文件夹进行比较。这是为了确保本地数据实际上完全上传到桶中。
我怎样才能可靠地执行这样的测试?
【问题讨论】:
标签: google-cloud-storage gcloud gsutil
我们正在将我们的项目归档在一个存储桶中(使用gsutil rsync)。我的任务是验证每次上传后,必须对本地项目文件夹和上传到存储桶的文件夹进行比较。这是为了确保本地数据实际上完全上传到桶中。
我怎样才能可靠地执行这样的测试?
【问题讨论】:
标签: google-cloud-storage gcloud gsutil
gsutil rsync 命令本身将对每个上传的文件执行校验和验证。来自Checksum Validation And Failure Handling:
每次上传或下载结束时,gsutil rsync 命令 验证源文件/对象的校验和是否匹配 目标文件/对象的校验和。如果校验和不 匹配,gsutil 将删除无效副本并打印警告 信息。
[剪辑]
rsync 命令会在失败发生时重试,但如果足够 在特定的复制或删除操作期间发生故障 命令将失败。
如果提供了 -C 选项,该命令将改为跳过 失败的对象并继续前进。在同步运行结束时,如果 任何失败都没有成功重试,rsync 命令将 报告失败次数,并以非零状态退出。在这 点你可以再次运行 rsync 命令,它会尝试任何 剩余所需的复制和/或删除操作。
[剪辑]
更多gsutil的重试处理详情请见gsutil help retries。
所以你可以:
-C 选项的gsutil rsync cmds 并直接使用它们的故障跟踪结果(最终会自动重试)【讨论】:
gsutil cp 来代替吗?
gsutil rsync,好像有问题我可以简单地重新调用相同的命令,它应该继续丢失任何东西,不确定gsutil cp是否不会重新复制所有内容。