Amazon s3 当传输失败时,我是否可以信任aws cli重新上载数据而不损坏数据?

Amazon s3 当传输失败时,我是否可以信任aws cli重新上载数据而不损坏数据?,amazon-s3,backup,aws-cli,Amazon S3,Backup,Aws Cli,我广泛使用S3存储工作站的加密和压缩备份。我使用awscli将它们同步到S3。有时,传输过程中可能会失败。我通常只是重试,然后让它完成 我的问题是:S3是否有某种检查来确保先前失败的传输没有留下损坏的文件?有人知道再次同步是否足以修复以前失败的传输吗 谢谢 上传到S3的单个文件永远不会部分上传。要么整个文件完成,S3将文件存储为S3对象,要么中止上载,不再存储S3对象 即使在多部分上传的情况下,也可以上传多个部分,但它们永远不会形成一个完整的S3对象,除非上传所有部分并执行“完整的多部分上传”操

我广泛使用S3存储工作站的加密和压缩备份。我使用awscli将它们同步到S3。有时,传输过程中可能会失败。我通常只是重试,然后让它完成

我的问题是:S3是否有某种检查来确保先前失败的传输没有留下损坏的文件?有人知道再次同步是否足以修复以前失败的传输吗


谢谢

上传到S3的单个文件永远不会部分上传。要么整个文件完成,S3将文件存储为S3对象,要么中止上载,不再存储S3对象

即使在多部分上传的情况下,也可以上传多个部分,但它们永远不会形成一个完整的S3对象,除非上传所有部分并执行“完整的多部分上传”操作。因此,不必担心部分上传会导致腐败


同步肯定足以修复以前失败的传输

是的,看起来AWS CLI通过使用MD5校验和来验证其上载的内容并处理损坏情况

AWS CLI将在特定场景中对上载和下载文件执行校验和验证。
AWS CLI将计算并自动填充标准和多部分上载的Content-MD5标头。如果S3计算的校验和与提供的Content-MD5不匹配,S3将不存储该对象,而是向AWS CLI返回错误消息

这是一个合理的假设,但您是否已审阅了代码?我没有。除非aws cli正确使用(不幸的是,可选的)
Content-MD5
机制,否则S3可以完美地存储损坏的传输中上载。如果没有实现内置的安全机制,完整的多部分上传还可以组装损坏上传的完美副本。或者,例外情况可能被整个吞没。有些故障被aws cli公然忽略,例如本地文件系统上的权限拒绝错误。关于S3本身,我只想说些好话,但cli让我没有信心。问题是传输失败会留下损坏的文件,而不是所有可能发生损坏的方式。我们可以讨论损坏1)在客户端磁盘上,2)在客户端内存中,3)在传输中,4)在S3内存中,以及5)在S3存储上,等等。。我认为这些都与问题无关。对我来说,问题在于aws cli实用程序是否正确验证上传并处理错误。如果它没有正确处理可能出错的事情,并且这些事情在它的影响范围内,那么这些事情似乎与答案相关。如果客户机不能被信任,当出现它应该能够检测到的故障时,它显然会失败,这就是一个问题,我的印象是aws cli中的代码过于乐观,认为事情会按预期工作。