此页面仅适用于使用 Vaults 和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。
如果您正在寻找档案存储解决方案,我们建议您在亚马逊 S3、S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier Deep Archive Deep Archive 中使用 Amazon Glacier 存储类。要了解有关这些存储选项的更多信息,请参阅 Amazon Glacier 存储类别
从 2025 年 12 月 15 日起,Amazon Glacier(最初基于保管库的独立服务)将不再接受新客户,对现有客户不产生任何影响。Amazon Glacier 是一项独立的服务 APIs ,拥有自己的服务,可将数据存储在文件库中,不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中,您的现有数据将保持安全且可以无限期地访问。无需迁移。对于低成本、长期的存档存储, Amazon 建议使用 Amazon S3 Glacier 存储类别,这些存储类别
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon Glacier 中检索文件库元数据使用 适用于 Java 的 Amazon SDK
检索文件库的文件库元数据
您可以检索特定文件库或特定 Amazon 区域内所有文件库的元数据。以下是使用适用于 Java 的 Amazon SDK 低级 API 检索特定文件库的文件库元数据的步骤。
-
创建
AmazonGlacierClient类(客户端)的实例。您需要指定文件库所在的 Amazon 区域。您使用此客户端执行的所有操作都适用于该 Amazon 区域。
-
通过创建一个
DescribeVaultRequest类的实例提供请求信息。Amazon Glacier(Amazon Glacier)要求您提供文件库名称和账户编号。如果您不提供账户 ID,则系统会使用与您提供来对请求签名的证书相关联的账户 ID。有关更多信息,请参阅 适用于 Java 的 Amazon SDK 与 Amazon Glacier 搭配使用。
-
以参数形式提供请求对象,运行
describeVault方法。Amazon Glacier 返回的文件库元数据信息可在
DescribeVaultResult对象中找到。
以下 Java 代码段说明了前面的步骤。
DescribeVaultRequest request = new DescribeVaultRequest() .withVaultName("*** provide vault name***"); DescribeVaultResult result = client.describeVault(request); System.out.print( "\nCreationDate: " + result.getCreationDate() + "\nLastInventoryDate: " + result.getLastInventoryDate() + "\nNumberOfArchives: " + result.getNumberOfArchives() + "\nSizeInBytes: " + result.getSizeInBytes() + "\nVaultARN: " + result.getVaultARN() + "\nVaultName: " + result.getVaultName());
注意
有关底层 REST API 的信息,请参阅描述文件库(获取文件库)。
检索一个区域所有文件库的文件库元数据
您还可以使用该listVaults方法检索特定 Amazon 区域中所有文件库的元数据。
以下 Java 代码段会检索 us-west-2 区域的文件库的列表。该请求会将响应中返回的文件库数限制为 5 个。然后,该代码段会进行一系列listVaults调用,以从该 Amazon 地区检索整个保管库列表。
AmazonGlacierClient client; client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); String marker = null; do { ListVaultsRequest request = new ListVaultsRequest() .withLimit("5") .withMarker(marker); ListVaultsResult listVaultsResult = client.listVaults(request); List<DescribeVaultOutput> vaultList = listVaultsResult.getVaultList(); marker = listVaultsResult.getMarker(); for (DescribeVaultOutput vault : vaultList) { System.out.println( "\nCreationDate: " + vault.getCreationDate() + "\nLastInventoryDate: " + vault.getLastInventoryDate() + "\nNumberOfArchives: " + vault.getNumberOfArchives() + "\nSizeInBytes: " + vault.getSizeInBytes() + "\nVaultARN: " + vault.getVaultARN() + "\nVaultName: " + vault.getVaultName()); } } while (marker != null);
在前面的代码段中,如果您未在请求中指定Limit值,Amazon Glacier 将按照 Amazon Glacier API 的设置,最多返回 10 个文件库。如果有更多文件库要列出,则响应 marker 字段会包含文件库的Amazon 资源名称 (ARN),新请求会从该名称处继续列表;否则,marker 字段为空。
请注意,列表中返回的每个文件库的信息与您通过调用特定文件库的 describeVault 方法获取的信息相同。
注意
listVaults 方法会调用底层 REST API(请参阅“列出文件库(获取文件库)”)。
示例:使用适用于 Java 的 Amazon SDK 检索文件库元数据
有关工作代码示例,请参阅“示例:使用创建文件库 适用于 Java 的 Amazon SDK”。该 Java 代码示例会创建文件库并检索文件库元数据。