此页面仅适用于使用文件库和 2012 年原始 REST API 的 S3 Glacier 服务的现有客户。
如果您正在寻找归档存储解决方案,建议使用 Amazon S3 中的 S3 Glacier 存储类 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息,请参阅《Amazon S3 用户指南》中的 S3 Glacier 存储类
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 S3 Glacier 中的文件库下载档案 适用于 Java 的 AWS SDK
以下 Java 代码示例使用的 适用于 Java 的 AWS SDK 高级别 API 下载您在上一步中上传的档案。在代码示例中,请注意以下情况:
-
以下示例创建
AmazonGlacierClient
类的实例。 -
该代码使用美国西部(俄勒冈州)区域 (
us-west-2
) 匹配您之前在步骤 2:在 S3 Glacier 中创建文件库中创建文件库的位置。 -
该示例使用了
ArchiveTransferManager
类的download
API 操作,该类属于 适用于 Java 的 AWS SDK高级 API。该示例将创建 Amazon Simple Notification Service (Amazon SNS) 主题,以及该主题订阅的 Amazon Simple Queue Service (Amazon SQS) 队列。如果您按照中的说明创建了 AWS Identity and Access Management (IAM) 管理员用户步骤 1:开始使用 S3 Glacier 之前,则您的用户拥有创建和使用 Amazon SNS 主题和 Amazon SQS 队列所必需的 IAM 权限。
有关如何运行此示例的 step-by-step说明,请参阅使用 Eclipse 运行 Amazon S3 Glacier 的 Java 示例。您需要更新 步骤 3:在 S3 Glacier 中将档案上传到文件库 中已上传文件的档案 ID 旁显示的代码。
例 使用 适用于 Java 的 AWS SDK下载档案
import java.io.File;
import java.io.IOException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.transfer.ArchiveTransferManager;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sqs.AmazonSQSClient;
public class AmazonGlacierDownloadArchive_GettingStarted {
public static String vaultName = "examplevault";
public static String archiveId = "*** provide archive ID ***";
public static String downloadFilePath = "*** provide location to download archive ***";
public static AmazonGlacierClient glacierClient;
public static AmazonSQSClient sqsClient;
public static AmazonSNSClient snsClient;
public static void main(String[] args) throws IOException {
ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();
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");
try {
ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);
atm.download(vaultName, archiveId, new File(downloadFilePath));
} catch (Exception e)
{
System.err.println(e);
}
}
}