如何比较本地文件夹与存储区中的文件夹?

时间:2017-09-06 11:05:35

标签: google-cloud-storage gcloud gsutil

我们将项目存档(使用gsutil rsync)。我的任务是验证每次上传后,必须对本地项目文件夹和上传到存储桶的文件夹进行比较。这是为了确保本地数据实际上已完全上传到存储桶中。

我如何可靠地执行此类测试?

1 个答案:

答案 0 :(得分:3)

gsutil rsync命令本身将为每个上传的文件执行校验和验证。来自Checksum Validation And Failure Handling

  

在每次上传或下载结束时,使用gsutil rsync命令   验证源文件/对象的校验和是否匹配   目标文件/对象的校验和。如果校验和没有   匹配,gsutil将删除无效副本并打印警告   信息。

     

[剪断]

     

rsync命令将在发生故障时重试,但如果足够的话   在特定的复制或删除操作期间发生故障   命令会失败。

     

如果提供-C选项,则命令将跳过   失败的对象并继续前进。在同步运行结束时if   任何失败都没有成功重试,rsync命令会   报告失败次数,并以非零状态退出。在这   指出你可以再次运行rsync命令,它将尝试任何   剩下的需要复制和/或删除操作。

     

[剪断]

     

有关gsutil重试处理的更多详细信息,请参阅gsutil help retries

所以你可以:

  • 只需检查命令的stdout / stderr是否有任何警告,表明此类校验和失败是致命的
  • gsutil rsync cmds与-C选项一起使用,并直接使用其失败跟踪结果(最终进行一些自动重新尝试)
  • 执行备用(偏执)检查,查看应该已同步的所有文件的目的地存在(如果文件仍然存在,则其内容必须通过校验和检查)