

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

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

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

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

# Amazon SDKs 与 Amazon Glacier 搭配使用
<a name="using-aws-sdk"></a>

Amazon 允许您 SDKs 为 Amazon Glacier 开发应用程序。SDK 库包含底层 Amazon Glacier API，可以简化您的编程任务。例如，对于发送到 Amazon Glacier 的每个请求，必须包括签名才能验证您的请求。使用软件开发工具包库时，您只需要在代码中提供 Amazon 安全证书，库会计算必要的签名并将其包含在发送给 Amazon Glacier 的请求中。它们 Amazon SDKs 提供了映射到底层 REST API 的库，并提供了可用于轻松构造请求和处理响应的对象。

**Topics**
+ [Amazon Java 和.NET 的 SDK 库](#java-.net-sdk-libraries)
+ [使用带有 Amazon SDK 的 Amazon Glacier](sdk-general-information-section.md)
+ [适用于 Java 的 Amazon SDK 与 Amazon Glacier 搭配使用](using-aws-sdk-for-java.md)
+ [将适用于 .NET 的 Amazon SDK 与 Amazon Glacier 结合使用](using-aws-sdk-for-dot-net.md)

 Amazon Command Line Interface (Amazon CLI) 是用于管理您 Amazon Web Services 服务的（包括 Amazon Glacier）的统一工具。有关下载的信息 Amazon CLI，请参阅[Amazon Command Line Interface](https://www.amazonaws.cn/cli/)。有关 Amazon Glacier CLI 命令的列表，请参阅 [Amazon CLI 命令参考](https://docs.amazonaws.cn/cli/latest/reference/glacier/index.html)。

## Amazon Java 和.NET 的 SDK 库
<a name="java-.net-sdk-libraries"></a>

 Amazon SDKs 适用于 Java 和.NET 的提供了高级和低级封装库。

您可以使用本开发者指南中的 适用于 Java 的 Amazon SDK 和来查找使用 Amazon Glacier 的 适用于 .NET 的 Amazon SDK 示例。

### 什么是低级 API？
<a name="what-is-low-level-api"></a>

低级包装程序库紧密映射 Amazon Glacier 支持的底层 REST API（[Amazon Glacier 的 API 参考](amazon-glacier-api.md)）。对于每个 Amazon Glacier REST 操作，低级 API 均提供了相应的方法、用于提供请求信息的请求对象，以及用于处理 Amazon Glacier 响应的响应对象。低级包装程序库是底层 Amazon Glacier 操作的最完整实现。

有关这些软件开发工具包库的信息，请参阅[适用于 Java 的 Amazon SDK 与 Amazon Glacier 搭配使用](using-aws-sdk-for-java.md)和[将适用于 .NET 的 Amazon SDK 与 Amazon Glacier 结合使用](using-aws-sdk-for-dot-net.md)。

### 什么是高级 API？
<a name="what-is-high-level-api"></a>

为了进一步简化应用程序开发，这些库为某些操作提供了更高级的抽象。例如：
+ 上传档案—要使用低级 API 上传档案，则除了文件名以及您要在其中保存档案的文件库名称以外，您还需要提供有效载荷的校验和（SHA-256 树形哈希）。但是，高级 API 会为您计算校验和。
+ 下载档案或文件库清单—要使用低级 API 下载档案，您首先要启动任务，等待任务完成，然后获取任务输出。您需要编写附加代码来设置 Amazon Simple Notification Service（Amazon SNS）主题，以便 Amazon Glacier 在作业完成时通知您。此外，您还需要使用某个轮询机制来检查任务完成消息是否已发布到该主题。该高级 API 提供了用于下载档案的方法，该方法会处理所有的这些步骤。您只需指定档案 ID 以及您要保存下载的数据的文件夹路径。

有关这些软件开发工具包库的信息，请参阅[适用于 Java 的 Amazon SDK 与 Amazon Glacier 搭配使用](using-aws-sdk-for-java.md)和[将适用于 .NET 的 Amazon SDK 与 Amazon Glacier 结合使用](using-aws-sdk-for-dot-net.md)。

### 何时使用高级和低级 API？
<a name="when-to-use-high-low-api"></a>

通常，如果高级 API 提供了您执行操作所需的方法，则您应使用高级 API，因为这样比较简单。但是，如果高级 API 没有提供该功能，则您可以使用低级 API。此外，低级 API 还允许对操作进行粒度控制（例如，在操作失败时执行重试逻辑）。例如，上传档案时，高级 API 会使用文件大小来确定是在单个操作中上传档案，还是使用分段上传 API。此外，该 API 还具有内置的重试逻辑，可以在上传失败时执行。但是，您的应用程序可能需要对这些决定进行粒度控制，在这种情况下，您可以使用低级 API。