计算校验和 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

计算校验和

可以将 S3 批量操作与计算校验和操作结合使用,来对存储在 Amazon S3 中的静态对象执行校验和计算。计算校验和操作计算对象校验和,可以使用这些校验和来验证数据完整性,而无需下载或还原所存储数据的对象。对于所有支持的校验和算法,可以使用计算校验和操作来计算复合和完整对象校验和类型的校验和。

使用计算校验和操作,可以通过单个任务请求处理数十亿个对象。无论对象大小如何,此批量操作均与所有 S3 存储类别兼容。要创建计算校验和任务,请使用 Amazon S3 控制台、Amazon Command Line Interface(Amazon CLI)、Amazon SDK 或 Amazon S3 REST API。

启用服务器访问日志记录后,还可以接收有关计算校验和任务的日志条目。完成校验和计算后,计算校验和任务操作会发出单独的服务器访问日志事件。这些日志条目遵循标准的 S3 服务器访问日志记录格式,并包括操作类型、时间戳、error codes 和关联的计算校验和任务 ID 等字段。此日志记录提供对对象执行的校验和验证活动的审计跟踪记录,有助于您跟踪和验证数据完整性操作。

注意

计算校验和操作不支持使用具有客户提供的加密密钥的服务器端加密(SSE-C)进行加密的对象。但是,可以将计算校验和操作用于通过使用具有 S3 托管式密钥的服务器端加密(SSE-S3)、具有 Amazon Key Management Service 的服务器端加密(DSSE-KMS)进行加密的对象。确保您已授予适当的 Amazon KMS 权限来执行计算校验和操作。

要开始使用批量操作来进行计算校验和操作,您可以:

  • 手动创建新的清单文件。

  • 使用现有的清单。

  • 指示批量操作根据您在创建任务时指定的对象筛选条件自动生成清单。

然后,提交计算校验和任务请求并监控其状态。计算校验和任务完成后,您将在指定的目标存储桶中自动收到完成报告。此完成报告包含存储桶中每个对象的校验和信息,可让您验证数据一致性。有关如何使用此报告来检查任务的更多信息,请参阅跟踪任务状态和完成报告

有关计算校验和功能以及如何在控制台中使用计算校验和的更多信息,请参阅在 Amazon S3 中检查静态数据的对象完整性。有关如何向计算校验和发送 REST 请求的信息,请参阅《Amazon S3 API Reference》中的 DescribeJobCreateJob

以下各节介绍如何开始将计算校验和操作与 S3 批量操作结合使用。

S3 批量操作计算校验和注意事项

在使用计算校验和操作之前,请查看以下注意事项列表:

  • 如果您的清单包含版本 ID 字段,则必须为清单中的所有对象提供版本 ID。如果未指定版本 ID,计算校验和请求将针对最新版本的对象执行该操作。

  • 要在服务器访问日志中接收计算校验和操作详细信息,必须先在源存储桶上启用服务器访问日志记录,然后指定用于存储日志的目标存储桶。目标存储桶必须也位于源存储桶所在的相同 Amazon Web Services 区域和 Amazon Web Services 账户中。配置服务器访问日志记录后,计算校验和操作会生成日志记录,其中包含标准字段,例如操作类型、HTTP 状态代码、S3 error codes、时间戳和关联的计算校验和任务 ID。计算校验和操作异步运行。因此,日志条目在其各个日志条目中使用计算校验和任务 ID,而不是请求 ID。

  • 对于存储的对象,生成报告可能需要长达几个小时。

  • 对于以下 S3 Glacier 存储类别,计算校验和任务可能需要长达一周的时间才能完成:

    • S3 Glacier Flexible Retrieval

    • S3 Glacier Deep Archive

  • 对于将在其中写入完成报告的存储桶,在运行计算校验和操作时,必须使用存储桶拥有者条件。如果对于提交的任务请求,实际存储桶拥有者与预期存储桶拥有者不匹配,则任务将失败。有关不支持存储桶拥有者条件的 S3 操作的列表,请参阅限制和局限性

S3 批量操作完成报告

当您创建计算校验和任务时,可以请求 S3 批量操作完成报告。此 CSV 文件显示对象、成功或失败代码、输出和描述。有关任务跟踪和完成报告的更多信息,请参阅完成报告