带 的 Amazon S3 校验和 - Amazon SDK for Java 2.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

带 的 Amazon S3 校验和

Amazon Simple Storage Service (Amazon S3) 允许您在上传对象时指定校验和。当您指定校验和时,校验和与对象一起存储,并且可以在下载对象时验证该校验和。

传输文件时,校验和可提供额外的数据层完整性。使用校验和,您可以通过确认收到文件与原始文件是否匹配来验证数据一致性。有关带 Amazon S3 的校验和的更多信息,请参阅 Amazon Simple Storage Service 用户指南

Amazon S3 目前支持四种校验和算法:SHA-1、SHA -256、CRC -32 和 -32C。CRC您可以灵活地选择最适合您需求的算法,然后让他们SDK计算校验和。或者,您可以使用其中四种支持算法之一来指定他们自己预先计算的校验和值。

我们在两个请求阶段讨论校验和:上传对象和下载对象。

上传对象

该算法的有效值为 CRC32CRC32CSHA1SHA256

以下代码片段显示了上传校验和为 CRC -32 的对象的请求。SDK发送请求时,它会计算 CRC -32 校验和并上传对象。Amazon S3 将校验和与对象一起存储。

如果SDK计算出的校验和与 Amazon S3 在收到请求时计算的校验和不匹配,则会返回错误。

使用预先计算的校验和值

请求中提供的预先计算的校验SDK和值会禁用自动计算,而是使用提供的值。

以下示例显示了预先计算的校验和为 SHA -256 的请求。

如果 Amazon S3 确定指定算法的校验和值不正确,服务就会返回错误响应。

分段上传

您也可以将校验和用于分段上传。

下载对象

当您使用getObject方法下载对象时,当,SDK会自动验证校验和。enabled

以下代码段中的请求指示通过计算校验和并比较值SDK来验证响应中的校验和。

如果上传对象时没有使用校验和,则不会进行验证。

Amazon S3 中的一个对象可以具有多个校验和,但在下载时只验证一个校验和。以下优先级(基于校验和算法的效率)决定了验证哪个校验和:SDK

  1. CRC-32C

  2. CRC-32

  3. SHA-1

  4. SHA-256

例如,如果响应同时包含 CRC -32 和 SHA -256 校验和,则仅验证 CRC -32 校验和。