下载数据时接收校验和 - Amazon S3 Glacier
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

如果您不熟悉 Amazon Simple Storage Service (Amazon S3) 中的归档存储功能,建议您先详细了解 Amazon S3 中的 S3 Glacier 存储类、S3 Glacier 即时检索S3 Glacier 灵活检索S3 Glacier 深度归档。有关更多信息,请参阅 Amazon S3 用户指南中的 S3 Glacier 存储类和用于存档对象的存储类。

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

下载数据时接收校验和

当您使用启动任务 API(请参阅“启动作业(POST 作业)”)检索档案时,您可以选择性地指定要检索的档案范围。类似地,当您使用获取任务输出 API(请参阅“获取任务输出(获取输出)”)下载您的数据时,您可以选择性地指定要下载的数据范围。这些范围有两个特征,您在检索和下载档案的数据时务必要了解这两个特征。要检索的范围必须与档案以兆字节对齐。为了在下载数据时接收校验和值,要检索的范围与要下载的范围必须以树形哈希对齐。这两种类型的范围对齐的定义如下:

  • 以兆字节对齐 – 在以下情况下,范围 [StartByte, EndBytes] 是以兆字节 (1 024*1 024) 对齐的:StartBytes 可被 1 MB 整除,EndBytes 加 1 可被 1 MB 整除或者等于指定的档案的结束值(档案字节大小减 1)。启动任务 API 中使用的范围(如果指定了范围)必须以兆字节对齐。

  • 以树形哈希对齐 – 当且仅当构建在范围 [StartBytes, EndBytes] 之上的树形哈希的根相当于整个档案的树形哈希中的一个节点时,该范围才相对于档案是以树形哈希对齐的。为了接收您下载的数据的校验和值,要检索的范围以及要下载的范围必须以树形哈希对齐。有关范围以及它们与档案树形哈希的关系的示例,请参阅“树形哈希示例:检索以树形哈希对齐的档案范围”。

    请注意,以树形哈希对齐的范围也是以兆字节对齐的。但是,以兆字节对齐的范围却不一定是以树形哈希对齐的。

以下案例描述了您在下载档案数据时,会在哪些情况下收到校验和值:

  • 如果您在启动任务请求中未指定要检索的范围,并且在获取任务请求中下载整个档案。

  • 如果您在启动任务请求中未指定要检索的范围,并且在获取任务请求中指定要下载的以树形哈希对齐的范围。

  • 如果您在启动任务请求中指定要检索的以树形哈希对齐的范围,并且在获取任务请求中下载整个范围。

  • 如果您在启动任务请求中指定要检索的以树形哈希对齐的范围,并且在获取任务请求中指定要下载的以树形哈希对齐的范围。

如果您在启动任务请求中指定要检索的范围,而该范围未以树形哈希对齐,则您在获取任务请求中下载数据时,仍然可以获取档案数据,但系统却不会返回校验和值。

树形哈希示例:检索以树形哈希对齐的档案范围

假设您的文件库中有一个 6.5MB 的档案,您要检索该档案的 2MB。您在启动任务请求中指定 2MB 范围的方式决定了您在下载数据时是否会收到数据校验和值。下图说明了对于 6.5 MB 档案您可以下载的两个 2 MB 范围。这两个范围均以兆字节对齐,但只有一个范围以树形哈希对齐。

以树形哈希对齐的范围说明

此部分对构成以树形哈希对齐的范围的内容给出了确切的说明。您在下载档案的一部分并且指定要检索的数据范围以及要从检索的数据下载的范围时,以树形哈希对齐的范围非常重要。如果这两个范围均以树形哈希对齐,则您在下载数据时将收到校验和数据。

当且仅当在范围 [A, B] 之上构建新的树形哈希,且该范围的树形哈希的根相当于整个档案的树形哈希中的一个节点时,范围 [A, B] 才相对于档案是以树形哈希对齐的。您可以看到 树形哈希示例:检索以树形哈希对齐的档案范围 中的图表显示了这一点。在此部分中,我们提供了树形哈希对齐的说明。

可将 [P, Q) 视为 N 兆字节 (MB) 的档案的范围查询,而 PQ 是 1 MB 的倍数。请注意,实际包括范围为 [P MB, Q MB – 1 字节],但为了简单起见,我们将它显示为 [P, Q)。基于这些考虑因素得知:

  • 如果 P 为奇数,则只有一个可能的以树形哈希对齐的范围即,[P, P + 1 MB)。

  • 如果 P 是偶数,k 是最大数,其中 P 可以写成 2k * X,则最多有 k 个以 P 开头的树形哈希对齐的范围。 X 是大于 0 的整数。以树形哈希对齐的范围分为以下类别:

    • 对于每个 i,其中 (0 <= i <= k) 并且 P + 2i < N,则 [P, Q + 2i) 是以树形哈希对齐的范围。

    • P = 0 是 A = 2[lgN]*0 时的特殊情况