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

在 Amazon Glacier 中使用 AWS SDK for Java

在 Amazon Glacier 中使用 AWS 开发工具包 中所述,AWS SDK for Java 提供了面向 Amazon Glacier 的高级和低级 API。有关下载 AWS SDK for Java 的相关信息,请参见适用于 Java 的 AWS 软件开发工具包

注意

AWS SDK for Java 提供了用于访问 Amazon Glacier 的线程安全客户端。您的应用程序应创建一个客户端并在线程之间重复使用此客户端,您应将此作为一项最佳实践。

使用低级 API

低级 AmazonGlacierClient 类提供了映射到 Amazon Glacier 的底层 REST 操作的所有方法(Amazon Glacier 的 API 参考)。调用其中任何一个方法时,您必须创建相应的请求对象,并提供响应对象;在该响应对象中,方法可以向操作返回 Amazon Glacier 响应。

例如,AmazonGlacierClient 类提供了 createVault 方法来创建文件库。此方法会映射到底层的创建文件库 REST 操作(请参阅“创建文件库(设置文件库)”)。要使用此方法,您必须创建接收 Amazon Glacier 响应的 CreateVaultResult 对象的实例,如以下 Java 代码段所示:

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com.cn/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

指南中的所有低级示例都使用了此模式。

注意

在创建请求时,前面的代码段会指定 AccountID。但是,在使用AWS SDK for Java时,请求中的 AccountId 是可选的,因此,本指南中的所有低级示例都未设置此值。AccountId 为 AWS 账户 ID。此值必须与用来对请求签名的证书相关联的 AWS 账户 ID 相匹配。您可以指定 AWS 账户 ID,或者选择指定“-”,在后一种情况下,Amazon Glacier 使用与请求签名证书关联的 AWS 账户 ID。如果您指定您的账户 ID,请勿在其中包括连字符。使用AWS SDK for Java时,如果您未提供账户 ID,则库会将账户 ID 设置为“-”。

使用高级 API

为了进一步简化应用程序开发,AWS SDK for Java提供了 ArchiveTransferManager 类,该类为低级 API 中的某些方法实现了更高级的抽象。它为档案操作提供了有用的方法,例如 uploaddownload 方法。

例如,以下 Java 代码段使用了 upload 高级方法来上传档案。

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

请注意,您执行的任何操作都会应用到您在创建 ArchiveTransferManager 数据元时指定的区域。如果您未指定任何区域,则 AWS SDK for Java 将 us-east-1 设置为默认区域。

此指南中的所有高级示例都使用了此模式。

注意

高级 ArchiveTransferManager 类可以通过 AmazonGlacierClient 实例或 AWSCredentials 实例来构造。

使用 Eclipse 运行 Amazon Glacier 的 Java 示例

入门 Java 代码示例的最简单方式是安装最新的AWS Toolkit for Eclipse。有关安装或更新至工具包最新版本的信息,请转到 http://www.amazonaws.cn/eclipse。以下任务将引导您创建和测试本节中提供的 Java 代码示例。

创建 Java 代码示例的常规过程

1

如AWS SDK for Java主题在适用于 Java 的 AWS 开发工具包中提供 AWS 证书所述,为 AWS 证书创建默认证书配置。

2

在 Eclipse 中创建一个新的 AWS Java 项目。此项目使用AWS SDK for Java进行了预先配置。

3

将代码从您正在阅读的部分复制到您的项目。

4

通过提供任意所需数据更新代码。例如,如果上传某个文件,则提供文件路径和存储桶名称。

5

运行该代码。验证是否使用 AWS 管理控制台创建了对象。有关 AWS 管理控制台的更多信息,请转到 http://www.amazonaws.cn/console/

设置终端节点

默认情况下,AWS SDK for Java会使用终端节点 https://glacier.us-east-1.amazonaws.com.cn。您可以显式设置终端节点,如以下 Java 代码段所示。

以下代码段说明如何使用低级 API 将终端节点设置为 美国西部(俄勒冈) 区域 (us-west-2)。

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com.cn");

以下代码段显示了如何使用高级 API 将终端节点设置为 美国西部(俄勒冈) 区域。

glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com.cn"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com.cn"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com.cn"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

有关支持的区域和终端节点的列表,请参阅访问 Amazon Glacier