本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用Amazon SDK for Java使用 Amazon S3 Glacier
这些区域有:Amazon SDK for Java如中所述,提供面向 Amazon S3 Glacier (S3 Glacier) 的高级和低级 API使用Amazon带有Amazon S3 Glacier 的. 有关下载Amazon SDK for Java,请参阅适用于 Java 的 Amazon SDK
注意
这些区域有:Amazon SDK for Java提供用于访问 S3 Glacier 的线程安全客户端。应用程序应创建一个客户端并在线程之间重复使用此客户端,您应将此作为一项最佳实践。
使用低级 API
低级AmazonGlacierClient
类提供了映射到 S3 Glacier 底层 REST 操作的所有方法 (Amazon S3 Glacier 的 API 参考)。调用其中任何一个方法时,您必须创建相应的请求对象,并提供响应对象;在该响应对象中,方法可以向操作返回 S3 Glacier 响应。
例如,AmazonGlacierClient
类提供了 createVault
方法来创建文件库。此方法会映射到底层的创建文件库 REST 操作(请参阅“创建文件库(设置文件库)”)。要使用此方法,您必须创建CreateVaultResult
接收 S3 Glacier 响应的对象,如以下 Java 代码段所示:
AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);
指南中的所有低级示例都使用了此模式。
注意
在创建请求时,前面的代码段会指定 AccountID
。但是,在使用Amazon SDK for Java时,请求中的 AccountId
是可选的,因此,本指南中的所有低级示例都未设置此值。这些区域有:AccountId
是Amazon Web Services 账户ID。此值必须与Amazon Web Services 账户与用来对请求签名的证书相关联的 ID。您可指定Amazon Web Services 账户ID 或可选的 “-”,在这种情况下,S3 Glacier 使用Amazon Web Services 账户与用来对请求签名的证书相关联的 ID。如果您指定您的账户 ID,请勿在其中包括连字符。使用Amazon SDK for Java时,如果您未提供账户 ID,则库会将账户 ID 设置为“-”。
使用高级 API
为了进一步简化应用程序开发,Amazon SDK for Java提供了 ArchiveTransferManager
类,该类为低级 API 中的某些方法实现了更高级的抽象。它为档案操作提供了有用的方法,例如 upload
和 download
方法。
例如,以下 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();
请注意,您执行的任何操作都会应用到Amazon创建时指定的区域ArchiveTransferManager
对象。如果没有指定Amazon地区,Amazon SDK for Java套us-east-1
作为默认值Amazon区域。
此指南中的所有高级示例都使用了此模式。
注意
高级 ArchiveTransferManager
类可以通过 AmazonGlacierClient
实例或 AWSCredentials
实例来构造。
使用 Eclipse 运行 Amazon S3 Glacier 的 Java 示例
入门 Java 代码示例的最简单方式是安装最新的Amazon Toolkit for Eclipse。有关安装或更新至最新版本的信息,请转到http://aws.amazon.com/eclipse
1 |
为你的创建默认凭证配置文件Amazon凭据,如中所述Amazon SDK for Java话题提供的Amazon适用于 Java 的 Amazon SDK 中的凭证. |
2 |
创建新的AmazonEclipse 中的 Java 项目。此项目使用Amazon SDK for Java进行了预先配置。 |
3 |
将代码从您正在阅读的部分复制到您的项目。 |
4 |
通过提供任意所需数据更新代码。例如,如果上传某个文件,则提供文件路径和存储桶名称。 |
5 |
运行该代码。验证是否使用 Amazon Web Services Management Console创建了对象。有关的更多信息Amazon Web Services Management Console,转到http://aws.amazon.com/console/ |
设置终端节点
默认情况下,Amazon SDK for Java会使用终端节点 https://glacier.us-east-1.amazonaws.com
。您可以显式设置终端节点,如以下 Java 代码段所示。
以下代码段显示了如何将终端节点设置为美国西部(俄勒冈)区域 (us-west-2
) 在低级 API 中。
client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");
以下代码段显示了如何使用高级 API 将终端节点设置为美国西部(俄勒冈)区域。
glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);
有关受支持的列表Amazon请参阅区域和终端节点访问Amazon S3.