

 **此页面仅适用于使用文件库和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。**

如果您正在寻找归档存储解决方案，建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息，请参阅 [Amazon Glacier 存储类别](https://aws.amazon.com/s3/storage-classes/glacier/)。

Amazon Glacier（最初基于保管库的独立服务）不再接受新客户。Amazon Glacier 是一项独立的服务 APIs ，拥有自己的服务，可将数据存储在文件库中，不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中，您现有的数据将确保安全，并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储， AWS 建议[使用 Amazon S3 Glacier 存储类别，这些存储类别](https://aws.amazon.com/s3/storage-classes/glacier/)基于S3存储桶 APIs、完全 AWS 区域 可用性、更低的成本和 AWS 服务集成，可提供卓越的客户体验。如果您希望加强功能，可以考虑使用我们的 [AWS 将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类别的解决方案指南](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)，迁移到 Amazon S3 Glacier 存储类别。

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

# 下载数据时接收校验和
<a name="checksum-calculations-range"></a>

当您使用启动任务 API（请参阅[启动任务（POST jobs）](api-initiate-job-post.md)）检索档案时，您可以选择性地指定要检索的档案范围。类似地，当您使用获取任务输出 API（请参阅[获取任务输出（GET output）](api-job-output-get.md)）下载您的数据时，您可以选择性地指定要下载的数据范围。这些范围有两个特征，您在检索和下载档案的数据时务必要了解这两个特征。要检索的范围必须与档案*以兆字节对齐*。为了在下载数据时接收校验和值，要检索的范围与要下载的范围必须*以树形哈希对齐*。这两种类型的范围对齐的定义如下：

 
+ 兆字节对齐-当范围 [*StartByte*, *EndBytes*] 可被 1 MB 整除且*EndBytes*加 1 可被 1 MB 整除或等于指定存档的末尾（存档字节大小减去 1）时 *StartBytes*，则以兆字节 (1024\$11024) 对齐。启动任务 API 中使用的范围（如果指定了范围）必须以兆字节对齐。
+ Tree-hash 对齐-当且仅当在该范围内构建的树形哈希的根等同于整个档案的树形哈希中的节点时，范围 [*StartBytes*，*EndBytes*] 才与档案进行树形哈希对齐。为了接收您下载的数据的校验和值，要检索的范围以及要下载的范围必须以树形哈希对齐。有关范围以及它们与档案树形哈希的关系的示例，请参阅[树形哈希示例：检索以树形哈希对齐的档案范围](#checksum-calculations-upload-archive-with-ranges)。

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

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

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

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

## 树形哈希示例：检索以树形哈希对齐的档案范围
<a name="checksum-calculations-upload-archive-with-ranges"></a>

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

 

![\[示意图显示检索以树形哈希对齐的档案范围。\]](http://docs.aws.amazon.com/zh_cn/amazonglacier/latest/dev/images/TreeHash-ArchiveWithRanges.png)


## 以树形哈希对齐的范围说明
<a name="tree-hash-algorithm"></a>

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

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

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

 
+ 如果 *P* 为奇数，则只有一个可能的以树形哈希对齐的范围即，[*P*, *P* \$1 1 MB)。
+ 如果 *P* 是偶数，*k* 是最大数，其中 *P* 可以写成 2*k* \$1 *X*，则最多有 *k* 个以 *P* 开头的树形哈希对齐的范围。 *X* 是大于 0 的整数。以树形哈希对齐的范围分为以下类别：
  + 对于每个 *i*，其中（0 <= *i* <= *k*）并且 *P* \$1 2*i* < *N*，则 [*P*, *Q* \$1 2*i*) 是以树形哈希对齐的范围。
  + *P* = 0 是 *A* = 2[lgN]\$10 时的特殊情况