

 **此页面仅适用于使用文件库和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。**

如果您正在寻找归档存储解决方案，建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息，请参阅 [Amazon Glacier 存储类别](https://aws.amazon.com/s3/storage-classes/glacier/)。

Amazon Glacier（最初基于保管库的独立服务）不再接受新客户。Amazon Glacier 是一项独立的服务 APIs ，拥有自己的服务，可将数据存储在文件库中，不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中，您现有的数据将确保安全，并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储， AWS 建议[使用 Amazon S3 Glacier 存储类别，这些存储类别](https://aws.amazon.com/s3/storage-classes/glacier/)基于S3存储桶 APIs、完全 AWS 区域 可用性、更低的成本和 AWS 服务集成，可提供卓越的客户体验。如果您希望加强功能，可以考虑使用我们的 [AWS 将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类别的解决方案指南](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)，迁移到 Amazon S3 Glacier 存储类别。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon Glacier 中检索文件库元数据
<a name="retrieving-vault-info"></a>

您可以检索文件库信息，例如文件库的创建日期、文件库中的档案数，以及文件库中所有档案的总大小。Amazon Glacier（Amazon Glacier）提供 API 调用，供您检索账户中特定文件库或特定 AWS 区域内所有文件库的这些信息。

如果您检索文件库列表，Amazon Glacier 将返回按文件库名称的 ASCII 值排序的列表。该列表最多包含 1000 个文件库。您应始终检查响应，以查看是否有继续该列表的标记；如果没有更多项目，则标记字段为 `null`。您可以选择性地限制响应中返回的文件库数。如果实际的文件库数大于响应中返回的文件库数，则结果会分页。您需要发送附加请求来获取下一组文件库。

**Topics**
+ [使用 Amazon Glacier 检索文件库元数据 适用于 Java 的 AWS SDK](retrieving-vault-info-sdk-java.md)
+ [使用 Amazon Glacier 中检索文件库元数据 适用于 .NET 的 AWS SDK](retrieving-vault-info-sdk-dotnet.md)
+ [使用 REST API 检索文件库元数据](listing-vaults-rest-api.md)
+ [使用 AWS Command Line Interface在 Amazon Glacier 中检索文件库元数据](retrieving-vault-info-cli.md)

# 使用 Amazon Glacier 检索文件库元数据 适用于 Java 的 AWS SDK
<a name="retrieving-vault-info-sdk-java"></a>

**Topics**
+ [检索文件库的文件库元数据](#retrieve-vault-info-sdk-java-lowlevel-one-vault)
+ [检索一个区域所有文件库的文件库元数据](#retrieve-vault-info-sdk-java-lowlevel-all-vaults)
+ [示例：使用适用于 Java 的 Amazon SDK 检索文件库元数据](#retrieving-vault-info-sdk-java-example)

## 检索文件库的文件库元数据
<a name="retrieve-vault-info-sdk-java-lowlevel-one-vault"></a>

您可以检索特定文件库或特定 AWS 区域内所有文件库的元数据。以下是使用适用于 Java 的 Amazon SDK 低级 API 检索特定文件库的文件库元数据的步骤。

 

1. 创建 `AmazonGlacierClient` 类（客户端）的实例。

   您需要指定文件库所在的 AWS 区域。您使用此客户端执行的所有操作都适用于该 AWS 区域。

1. 通过创建一个 `DescribeVaultRequest` 类的实例提供请求信息。

   Amazon Glacier（Amazon Glacier）要求您提供文件库名称和您的账户 ID。如果您不提供账户 ID，则系统会使用与您提供来对请求签名的证书相关联的账户 ID。有关更多信息，请参阅[适用于 Java 的 AWS SDK 与 Amazon Glacier 搭配使用](using-aws-sdk-for-java.md)。

1. 以参数形式提供请求对象，运行 `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 的信息，请参阅[描述文件库（GET vault）](api-vault-get.md)。

## 检索一个区域所有文件库的文件库元数据
<a name="retrieve-vault-info-sdk-java-lowlevel-all-vaults"></a>

您还可以使用该`listVaults`方法检索特定 AWS 区域中所有文件库的元数据。

以下 Java 代码段会检索 `us-west-2` 区域的文件库的列表。该请求会将响应中返回的文件库数限制为 5 个。然后，该代码段会进行一系列`listVaults`调用，以从该 AWS 地区检索整个保管库列表。

 

```
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（请参阅[列出文件库（GET vaults）](api-vaults-get.md)）。

## 示例：使用适用于 Java 的 Amazon SDK 检索文件库元数据
<a name="retrieving-vault-info-sdk-java-example"></a>

有关工作代码示例，请参阅[示例：使用适用于 Java 的 AWS SDK 创建文件库](creating-vaults-sdk-java.md#creating-vaults-sdk-java-example)。该 Java 代码示例会创建文件库并检索文件库元数据。

# 使用 Amazon Glacier 中检索文件库元数据 适用于 .NET 的 AWS SDK
<a name="retrieving-vault-info-sdk-dotnet"></a>

**Topics**
+ [检索文件库的文件库元数据](#retrieve-vault-info-sdk-dotnet-lowlevel-one-vault)
+ [检索一个区域所有文件库的文件库元数据](#retrieve-vault-info-sdk-dotnet-lowlevel-all-vaults)
+ [示例：使用的低级 API 检索文件库元数据 适用于 .NET 的 AWS SDK](#creating-vaults-sdk-dotnet-example)

## 检索文件库的文件库元数据
<a name="retrieve-vault-info-sdk-dotnet-lowlevel-one-vault"></a>

您可以检索特定文件库或特定 AWS 区域内所有文件库的元数据。以下是使用 适用于 .NET 的 AWS SDK低级 API 检索特定文件库的文件库元数据的步骤。

 

1. 创建 `AmazonGlacierClient` 类（客户端）的实例。

   您需要指定文件库所在的 AWS 区域。您使用此客户端执行的所有操作都适用于该 AWS 区域。

1. 通过创建一个 `DescribeVaultRequest` 类的实例提供请求信息。

   Amazon Glacier（Amazon Glacier）要求您提供文件库名称和您的账户 ID。如果您不提供账户 ID，则系统会使用与您提供来对请求签名的证书相关联的账户 ID。有关更多信息，请参阅[将适用于 .NET 的 AWS SDK 与 Amazon Glacier 结合使用](using-aws-sdk-for-dot-net.md)。

1. 以参数形式提供请求对象，运行 `DescribeVault` 方法。

   Amazon Glacier 返回的文件库元数据信息在 `DescribeVaultResult` 对象中提供。

以下 C\$1 代码段说明了前面的步骤。此代码段检索美国西部（俄勒冈州）区域中现有文件库的元数据信息。

```
AmazonGlacierClient client;
client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2);

DescribeVaultRequest describeVaultRequest = new DescribeVaultRequest()
{
  VaultName = "*** Provide vault name ***"
};  
DescribeVaultResponse describeVaultResponse = client.DescribeVault(describeVaultRequest);
Console.WriteLine("\nVault description...");
Console.WriteLine(
   "\nVaultName: " + describeVaultResponse.VaultName +
   "\nVaultARN: " + describeVaultResponse.VaultARN +
   "\nVaultCreationDate: " + describeVaultResponse.CreationDate +
   "\nNumberOfArchives: " + describeVaultResponse.NumberOfArchives +
   "\nSizeInBytes: " + describeVaultResponse.SizeInBytes +
   "\nLastInventoryDate: " + describeVaultResponse.LastInventoryDate 
   );
```

 

**注意**  
有关底层 REST API 的信息，请参阅[描述文件库（GET vault）](api-vault-get.md)。

## 检索一个区域所有文件库的文件库元数据
<a name="retrieve-vault-info-sdk-dotnet-lowlevel-all-vaults"></a>

您还可以使用该`ListVaults`方法检索特定 AWS 区域中所有文件库的元数据。

以下 C\$1 代码段检索美国西部（俄勒冈州）区域中的文件库的列表。该请求会将响应中返回的文件库数限制为 5 个。然后，该代码段会进行一系列`ListVaults`调用，以从该 AWS 地区检索整个保管库列表。

 

```
AmazonGlacierClient client;
client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2);
string lastMarker = null;
Console.WriteLine("\n List of vaults in your account in the specific AWS Region ...");
do
{
  ListVaultsRequest request = new ListVaultsRequest()
  {
    Limit = 5,
    Marker = lastMarker
  };
  ListVaultsResponse response = client.ListVaults(request);
   
  foreach (DescribeVaultOutput output in response.VaultList)
  {
    Console.WriteLine("Vault Name: {0} \tCreation Date: {1} \t #of archives: {2}",
                      output.VaultName, output.CreationDate, output.NumberOfArchives); 
  }
  lastMarker = response.Marker;
} while (lastMarker != null);
```

在前面的代码段中，如果您在请求中未指定 `Limit` 值，则 Amazon Glacier 最多返回 Amazon Glacier API 设置的 10 个文件库。

请注意，列表中返回的每个文件库的信息与您通过调用特定文件库的 `DescribeVault` 方法获取的信息相同。

 

**注意**  
`ListVaults` 方法会调用底层 REST API（请参阅[列出文件库（GET vaults）](api-vaults-get.md)）。

## 示例：使用的低级 API 检索文件库元数据 适用于 .NET 的 AWS SDK
<a name="creating-vaults-sdk-dotnet-example"></a>

有关工作代码示例，请参阅[示例：使用的低级 API 进行文件库操作 适用于 .NET 的 AWS SDK](creating-vaults-dotnet-sdk.md#vault-operations-example-dotnet-lowlevel)。该 C\$1 代码示例会创建文件库并检索文件库元数据。

# 使用 REST API 检索文件库元数据
<a name="listing-vaults-rest-api"></a>

要使用 REST API 列出文件库，请参阅[列出文件库（GET vaults）](api-vaults-get.md)。要描述一个文件库，请参阅[描述文件库（GET vault）](api-vault-get.md)。

# 使用 AWS Command Line Interface在 Amazon Glacier 中检索文件库元数据
<a name="retrieving-vault-info-cli"></a>

此示例演示如何使用 AWS Command Line Interface（AWS CLI）在 Amazon Glacier（Amazon Glacier）中检索文件库信息和元数据。

**Topics**
+ [（先决条件）设置 AWS CLI](#Creating-Vaults-CLI-Setup)
+ [示例：使用 AWS CLI 检索文件库元数据](#Retrieving-Vault-Metadata-CLI-Implementation)

## （先决条件）设置 AWS CLI
<a name="Creating-Vaults-CLI-Setup"></a>

1. 下载并配置 AWS CLI。有关说明，请参阅《AWS Command Line Interface用户指南》**中的以下主题：

    [安装 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

   [配置 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

1. 在命令提示符处输入以下命令来验证 AWS CLI 设置。这些命令没有显式提供凭证，因此将使用默认配置文件的凭证。
   + 尝试使用 help 命令。

     ```
     aws help
     ```
   + 要获取已配置账户上 Amazon Glacier 文件库的列表，请使用 `list-vaults` 命令。将 *123456789012* 替换为您自己的 AWS 账户 ID。

     ```
     aws glacier list-vaults --account-id 123456789012
     ```
   + 要查看 AWS CLI 的当前配置数据，请使用 `aws configure list` 命令。

     ```
     aws configure list
     ```

## 示例：使用 AWS CLI 检索文件库元数据
<a name="Retrieving-Vault-Metadata-CLI-Implementation"></a>
+ 使用 `describe-vault` 命令描述账户 *111122223333* 下名为 *awsexamplevault* 的文件库。

  ```
  aws glacier describe-vault --vault-name awsexamplevault --account-id 111122223333
  ```