使用校验和保护数据完整性 - AWS SDK for PHP

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

使用校验和保护数据完整性

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

传输文件时,校验和可提供额外的数据层完整性。使用校验和,您可以通过确认收到文件与原始文件是否匹配来验证数据一致性。有关 Amazon S3 校验和的更多信息,请参阅亚马逊简单存储服务用户指南,包括支持的算法

您可以灵活地选择最适合自己需求的算法,并让 SDK 计算校验和。或者,您可以使用支持的算法之一提供预先计算的校验和值。

注意

SDK 还提供数据完整性保护的全局设置,您可以在外部进行设置,您可以在AWS SDKs 和工具参考指南中阅读这些设置。

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

上传对象

如果您未在请求中提供校验和算法,则校验和行为会因您使用的 SDK 版本而异,如下表所示。

未提供校验和算法时的校验和行为

使用预先计算的校验和值

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

以下示例显示了具有预先计算的 SHA256校验和的请求。

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

分段上传

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

下载对象

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

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