curl 成功后需要验证文件完整性吗

curl 成功后需要验证文件完整性吗

我在 S3 上有一堆文件,需要在几台设备上通过命令行(BASH)下载和更新它们。

我现在做的事情:

  1. 请求文件头-I并提取 ETag 字段
  2. 检查本地文件的md5sum
  3. 如果它们不匹配(或文件在本地尚不存在),我会下载该文件以-f获得可靠的退出状态
  4. 检查$?卷曲度
  5. 如果是 0,我会将预期的 md5sum 与下载文件的 md5sum 进行比较

我想要做的事情:

  1. 如果文件本地存在,则获取该文件的 md5sum
  2. 下载文件--header 'If-None-Match:<md5sum of local file>
  3. 如果退出状态为 0-> 完成!

我的问题:我可以依赖 curls 退出状态吗?例如当退出状态为 0 时,下载的文件是否有效(假设我的文件系统同时没有损坏)?

答案1

抱歉,没有足够的代表来评论,但你可能需要看看这个,并考虑到 etag 不是你对任何分段上传的文件的期望。 https://stackoverflow.com/questions/6591047/etag-definition-changed-in-amazon-s3

至于您是否应该检查文件,如果您 100% 确定的话,我会说是的。仅仅因为您可能已经通过网络获得了所有正确的位,并不意味着它已正确写入您的硬盘。并非所有内容都那么重要以至于您必须检查,但出于存档目的,我总是会检查,您会惊讶于我不得不多少次回头调整文件到达最终目的地的方式,因为驱动器不好等等。

相关内容