此页面仅适用于使用保管库的 S3 Glacier 服务的现有客户以及 2012 年以RESTAPI来的原始客户。
如果您正在寻找档案存储解决方案,我们建议您在亚马逊 S3、S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier Deep Archive Dee p Archive 中使用 S3 Glacier 存储类。要了解有关这些存储选项的更多信息,请参阅 Amazon S3 用户指南中的 S3 Glacier 存储类
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
下载数据时接收校验和
当您使用启动任务 API(请参阅“启动 Job(POST作业)”)检索档案时,您可以选择性地指定要检索的档案范围。类似地,当您使用获取任务输出 API(请参阅“获取任务输出(获取输出)”)下载您的数据时,您可以选择性地指定要下载的数据范围。这些范围有两个特征,您在检索和下载档案的数据时务必要了解这两个特征。要检索的范围必须与档案以兆字节对齐。为了在下载数据时接收校验和值,要检索的范围与要下载的范围必须以树形哈希对齐。这两种类型的范围对齐的定义如下:
-
兆字节对齐-当范围 [StartByte, EndBytes] 可被 1 MB 整除且EndBytes加 1 可被 1 MB 整除或等于指定存档的末尾(存档字节大小减去 1)时 StartBytes,则以兆字节 (1024*1024) 对齐。启动任务 API 中使用的范围(如果指定了范围)必须以兆字节对齐。
-
Tree-hash 对齐-当且仅当在该范围内构建的树形哈希的根等同于整个档案的树形哈希中的节点时,范围 [StartBytes,EndBytes] 才与档案进行树形哈希对齐。为了接收您下载的数据的校验和值,要检索的范围以及要下载的范围必须以树形哈希对齐。有关范围以及它们与档案树形哈希的关系的示例,请参阅“树形哈希示例:检索以树形哈希对齐的档案范围”。
请注意,以树形哈希对齐的范围也是以兆字节对齐的。但是,以兆字节对齐的范围却不一定是以树形哈希对齐的。
以下案例描述了您在下载档案数据时,会在哪些情况下收到校验和值:
-
如果您在启动任务请求中未指定要检索的范围,并且在获取任务请求中下载整个档案。
-
如果您在启动任务请求中未指定要检索的范围,并且在获取任务请求中指定要下载的以树形哈希对齐的范围。
-
如果您在启动任务请求中指定要检索的以树形哈希对齐的范围,并且在获取任务请求中下载整个范围。
-
如果您在启动任务请求中指定要检索的以树形哈希对齐的范围,并且在获取任务请求中指定要下载的以树形哈希对齐的范围。
如果您在启动任务请求中指定要检索的范围,而该范围未以树形哈希对齐,则您在获取任务请求中下载数据时,仍然可以获取档案数据,但系统却不会返回校验和值。
树形哈希示例:检索以树形哈希对齐的档案范围
假设您的文件库中有一个 6.5MB 的档案,您要检索该档案的 2MB。您在启动任务请求中指定 2MB 范围的方式决定了您在下载数据时是否会收到数据校验和值。下图说明了对于 6.5 MB 档案您可以下载的两个 2 MB 范围。这两个范围均以兆字节对齐,但只有一个范围以树形哈希对齐。
以树形哈希对齐的范围说明
此部分对构成以树形哈希对齐的范围的内容给出了确切的说明。您在下载档案的一部分并且指定要检索的数据范围以及要从检索的数据下载的范围时,以树形哈希对齐的范围非常重要。如果这两个范围均以树形哈希对齐,则您在下载数据时将收到校验和数据。
当且仅当在范围 [A, B] 之上构建新的树形哈希,且该范围的树形哈希的根相当于整个档案的树形哈希中的一个节点时,范围 [A, B] 才相对于档案是以树形哈希对齐的。您可以看到 树形哈希示例:检索以树形哈希对齐的档案范围 中的图表显示了这一点。在此部分中,我们提供了树形哈希对齐的说明。
可将 [P, Q) 视为 N 兆字节 (MB) 的档案的范围查询,而 P 和 Q 是 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 时的特殊情况
-