Amazon S3 Glacier
开发人员指南 (API 版本 2012-06-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在 Amazon S3 Glacier 中使用 AWS 开发工具包

Amazon Web Services 提供一些开发工具包,帮助您开发适用于 Amazon S3 Glacier (Glacier) 的应用程序。软件开发工具包库包含底层 Glacier API,可以简化您的编程任务。例如,对于发送到 Glacier 的每个请求,必须包括签名才能验证您的请求。在使用开发工具包库时,您只需在代码中提供 AWS 安全证书,库会计算所需的签名并将其包括在发送到 Glacier 的请求中。AWS 开发工具包提供了可映射到底层 REST API 的库,以及可让您轻松构建请求并处理响应的数据元。

支持 Glacier 的 AWS 开发工具包

以下 AWS 开发工具包支持 Glacier:

在整个开发人员指南中,您可以查看通过 Java 和 .NET 开发工具包使用 Glacier 的示例。有关所有语言的库和示例代码,请参阅示例代码和库

AWS Command Line Interface (AWS CLI) 是用于管理您的 AWS 服务的统一工具,包括 Glacier。有关下载 AWS CLI 的信息,请参阅 AWS Command Line Interface。有关 Glacier CLI 命令的列表,请参阅 AWS CLI 命令参考

适用于 Java 和 .NET 的 AWS 开发工具包库

适用于 Java 和 .NET 的 AWS 开发工具包提供了高级和低级包装库。

什么是低级 API?

低级包装程序库紧密映射 Glacier 支持的底层 REST API(Glacier 的 API 参考)。对于每个 Glacier REST 操作,低级 API 均提供了相应的方法、用于提供请求信息的请求数据元,以及用于处理 Glacier 响应的响应数据元。低级包装程序库是底层 Glacier 操作的最完整实现。

有关这些软件开发工具包库的信息,请参阅将AWS SDK for Java与 Amazon S3 Glacier 结合使用将适用于 .NET 的 AWS 开发工具包与 Amazon S3 Glacier 结合使用

什么是高级 API?

为了进一步简化应用程序开发,这些库为某些操作提供了更高级的抽象。例如,

  • 上传档案 — 要使用低级 API 上传档案,则除了文件名以及您要在其中保存档案的文件库名称以外,您还需要提供有效负载的校验和(SHA-256 树形哈希)。但是,高级 API 会为您计算校验和。

  • 下载档案或文件库清单 — 要使用低级 API 下载档案,您首先要启动任务,等待任务完成,然后获取任务输出。您需要编写附加代码来设置 Amazon Simple Notification Service (Amazon SNS) 主题,以便 Glacier 在任务完成时通知您。此外,您还需要使用某个轮询机制来检查任务完成消息是否已发布到该主题。该高级 API 提供了用于下载档案的方法,该方法会处理所有的这些步骤。您只需指定档案 ID 以及您要保存下载的数据的文件夹路径。

有关这些软件开发工具包库的信息,请参阅将AWS SDK for Java与 Amazon S3 Glacier 结合使用将适用于 .NET 的 AWS 开发工具包与 Amazon S3 Glacier 结合使用

何时使用高级和低级 API?

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