是否有必要在curl成功时validation文件的完整性

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

我所做的(截至目前):

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

我想做什么:

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

我的问题:我可以依靠卷发退出状态吗? 即当退出状态为0时,下载的文件是否有效 (假设我的文件系统在此期间没有被损坏)?

对不起没有足够的评论意见,但你可能想看看这个和etag帐户不是你所期望的任何文件是一个多部分上传。 https://stackoverflow.com/questions/6591047/etag-definition-changed-in-amazon-s3

至于你应该检查文件,那么我会说如果你想成为100%肯定是的。 只是因为你可能已经通过networking获得所有正确的位并不意味着它被正确地写入到你的硬盘。 并非所有的事情都是你必须检查的关键,但为了档案的目的,我经常检查,你会惊讶于我必须回头调整文件到达最终目的地的方式,因为坏的驱动器等等。