概览
各组织都在不断创建数字资产并将其迁移到
Amazon S3。这些资产包括图像、二进制文件、后期制作渲染等,所有这些都对业务至关重要。由于资产会跨工作流迁移和使用,您想要确保文件不会因为网络损坏、硬盘驱动器故障或其他意外问题而更改。如今,该行业使用算法逐字节扫描文件,为其生成唯一的指纹,即校验和。
使用校验和,您可以验证资产在复制时是否未被更改。执行校验和包括使用算法按顺序迭代文件中的每个字节。
Amazon S3 提供多种校验和选项,以加速数据完整性检查。这些功能在客户上传对象时计算文件的校验和。将大量数据迁移到 Amazon S3 的客户希望执行这些完整性检查,以此作为持久性最佳实践,并确认每个字节都是在不更改的情况下传输的。这使客户能够保持端到端的数据完整性。校验和是在上传对象的那一刻创建的,并在对象的整个生命周期内保持不变。下载对象时,最后会验证相同的校验和,以提供端到端的数据完整性。Amazon S3 支持的额外算法包括:SHA-1、SHA-256、CRC32 和 CRC32-C。借助这些新的数据完整性检查功能,您可以验证您的文件在数据传输期间或上传或下载过程中是否未被更改。
您将学到的内容
- 将文件上传到 Amazon S3
- 比较 Amazon S3 上与您的本地文件的校验和以验证数据完整性
先决条件
您需要一个 AWS 账户才能完成本教程。
访问此支持页面,了解有关如何创建和激活新 AWS 账户的详细信息。
实施
第 1 步:创建 Amazon S3 存储桶
第 2 步:上传文件并指定校验和算法
现在,您的存储桶已创建并配置,您可以上传文件并让 Amazon S3 计算校验和。
如果您的对象小于 16MB,并且您已经计算出 SHA-256 校验和(base64 编码),则可以在“预先计算的值”输入框中提供该校验和。要将此功能用于大于 16MB 的对象,您可以使用 CLI 或 SDK。当 Amazon S3 收到对象时,会使用指定的算法计算校验和。如果校验和值不匹配,Amazon S3 会生成错误并拒绝上传,如屏幕截图所示。
第 3 步:验证校验和
第 4 步:清理
在以下步骤中,您将清理在本教程中创建的资源。最佳实践是删除您不再使用的资源,以免产生意外费用。
- 4.2 – 删除测试存储桶
- 最后,您需要删除已创建的测试存储桶。回到您的账户中的存储桶列表。选择为本教程创建的存储桶左侧的单选按钮,然后选择删除按钮。查看警告消息。如果要继续删除此存储桶,请在删除存储桶确认框中输入存储桶的名称,然后选择删除存储桶。
结论
恭喜! 您已经学会了如何将文件上传到 Amazon S3、计算额外校验和,以及如何比较 Amazon S3 上与您的本地文件的校验和以验证数据完整性。
后续步骤
要了解有关校验和的更多信息,请访问以下资源。
了解结尾校验和
Amazon S3 还引入了结尾校验和,这是 AWS SDK 的一项新功能。使用结尾校验和,SDK 会在将您的文件上传到 Amazon S3 时一次性计算校验和。在 Building scalable checksums 博客文章中阅读有关该功能的更多信息。