在 Amazon S3 中检查对象完整性
Amazon S3 在对象的存储生命周期中提供了一系列数据保护功能。通过 Amazon S3,可以使用校验和值来验证您上传或下载的数据的完整性。此外,可以请求为存储在 S3 中的任何对象计算另一个校验和值。
上传、复制或管理数据时,可以从几种支持的校验和算法中进行选择:
-
CRC-64/NVME (
CRC64NVME)注意
CRC64NVME校验和算法是用于校验和计算的默认校验和算法。 -
CRC-32 (
CRC32) -
CRC-32C (
CRC32C) -
SHA-1 (
SHA1) -
SHA-256 (
SHA256) -
MD5 (
MD5) -
XXHash64 (
XXHASH64) -
XXHash3 (
XXHASH3) -
XXHash128 (
XXHASH128) -
SHA-512 (
SHA512)
注意
您可以使用 x-amz-checksum-md5 标头提供预先计算的 MD5 校验和。AWSSDK 不会自动计算 MD5 校验和。对于分段上传,S3 批量操作中的计算校验和操作可以计算静态对象的完整对象 MD5 校验和。旧版 Content-MD5 标头仍保持可用于使用 SSE-S3 加密的单分段上传。
当将对象上传到 S3 时,可以指定使用这些校验和算法中的任何一种。对于上传,AWS 拥有的所有客户端都会计算对象的校验和,然后将其与上传请求一起发送。然后,S3 在服务器端独立计算对象的校验和值,并使用提供的值对其进行验证,然后再存储对象和校验和值。当您执行单分段上传或分段上传时(对分段上传使用完整对象校验和类型),还可以为这些校验和算法提供预先计算的值。要将预先计算的值用于多个对象,请使用 AWS CLI 或 AWS SDK。
或者,如果您想在无需还原或下载数据的情况下验证 S3 中的数据集,则可以将计算校验和操作与 S3 批量操作结合使用。计算校验和操作支持您在一个任务请求中高效地验证数十亿个对象。执行计算校验和操作时,S3 会为一组静态对象计算校验和值。在任务请求结束时,您将收到一份自动生成的完整性报告(也称为完成报告),您可以使用该报告来确认数据集是否完好无损。