将 Amazon SDK 与 Amazon S3 Glacier 结合使用 - 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 存储类和用于存档对象的存储类。

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

将 Amazon SDK 与 Amazon S3 Glacier 结合使用

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

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

适用于 Java 和 .NET 的 Amazon SDK

适用于 Java 和 .NET 的 Amazon SDK 提供了高级和低级包装程序库。

在整个开发人员指南中,您可以查找通过Amazon SDK for Java 和Amazon SDK for .NET 使用 Amazon S3 Glacier 的示例。

什么是低级 API?

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

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

什么是高级 API?

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

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

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

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

何时使用高级和低级 API?

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