【发布时间】:2020-04-24 17:19:13
【问题描述】:
AWS S3 和 Google Cloud Storage 等对象存储系统讨论了需要在传输后立即检查下载和上传对象的完整性,以确保没有发生损坏。
例如,AWS CLI doc 提到:
上传: AWS CLI 将为标准上传和分段上传计算并自动填充 Content-MD5 标头。如果 S3 计算的校验和与提供的 Content-MD5 不匹配,S3 将不会存储该对象,而是会向 AWS CLI 返回一条错误消息。
下载: AWS CLI 将在可能的情况下尝试验证下载的校验和,基于 AWS CLI 从 S3 下载对象时执行的 GetObject 请求返回的 ETag 标头。如果计算的 MD5 校验和与预期的校验和不匹配,则删除文件并重试下载。
鉴于 TCP 包含自动完整性检查,为什么这些系统需要额外的校验和来验证完整性?似乎通过使用 TCP,我们应该能够确保传输过程中不会发生损坏。
【问题讨论】:
标签: amazon-s3 google-cloud-storage object-storage