此页面仅适用于使用文件库和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。
如果您正在寻找归档存储解决方案,建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息,请参阅 Amazon Glacier 存储类别
Amazon Glacier(最初基于保管库的独立服务)不再接受新客户。Amazon Glacier 是一项独立的服务 APIs ,拥有自己的服务,可将数据存储在文件库中,不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中,您现有的数据将确保安全,并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储, Amazon 建议使用 Amazon S3 Glacier 存储类别,这些存储类别
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用适用于 Java 的 Amazon SDK 从 Amazon Glacier 的文件库中下载档案
以下 Java 代码示例使用适用于 Java 的 Amazon SDK 高级 API 来下载您在之前的步骤中上传的档案。在代码示例中,请注意以下情况:
-
以下示例创建
AmazonGlacierClient类的实例。 -
该代码使用美国西部(俄勒冈州)区域(
us-west-2)匹配您之前在步骤 2:在 Amazon Glacier 中创建文件库中创建文件库的位置。 -
该示例使用了
ArchiveTransferManager类的downloadAPI 操作,该类属于适用于 Java 的 Amazon SDK 高级 API。该示例将创建 Amazon Simple Notification Service(Amazon SNS)主题,以及该主题订阅的 Amazon Simple Queue Service(Amazon SQS)队列。如果您按照步骤 1:开始使用 Amazon Glacier 之前中的说明创建了 Amazon Identity and Access Management(IAM)管理用户,则您的用户具有必要的 IAM 权限以创建和使用 Amazon SNS 主题和 Amazon SQS 队列。
有关如何运行以下示例的分步说明,请参阅使用 Eclipse 运行 Amazon Glacier 的 Java 示例。您需要更新 步骤 3:在 Amazon Glacier 中将档案上传到文件库 中已上传文件的档案 ID 旁显示的代码。
例 使用适用于 Java 的 Amazon 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); } } }