此页面仅适用于使用 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 中,您的现有数据将保持安全且可以无限期地访问。无需迁移。对于低成本、长期的存档存储, AWS 建议使用 Amazon S3 Glacier 存储类别,这些存储类别基于S3存储桶 APIs、完全 AWS 区域 可用性、更低的成本和 AWS 服务集成,可提供卓越的客户体验。如果您想要增强功能,可以考虑使用我们的AWS 解决方案指南迁移到 Amazon S3 Glacier 存储类别,将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ListVaults与 AWS SDK 或 CLI 配合使用
以下代码示例演示如何使用 ListVaults。
操作示例是大型程序的代码摘录,必须在上下文中运行。在以下代码示例中,您可以查看此操作的上下文:
- .NET
-
- 适用于 .NET 的 SDK
-
/// <summary>
/// List the Amazon S3 Glacier vaults associated with the current account.
/// </summary>
/// <returns>A list containing information about each vault.</returns>
public async Task<List<DescribeVaultOutput>> ListVaultsAsync()
{
var glacierVaultPaginator = _glacierService.Paginators.ListVaults(
new ListVaultsRequest { AccountId = "-" });
var vaultList = new List<DescribeVaultOutput>();
await foreach (var vault in glacierVaultPaginator.VaultList)
{
vaultList.Add(vault);
}
return vaultList;
}
- CLI
-
- AWS CLI
-
以下命令列出默认账户和区域中的文件库:
aws glacier list-vaults --account-id -
输出:
{
"VaultList": [
{
"SizeInBytes": 3178496,
"VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault",
"LastInventoryDate": "2015-04-07T00:26:19.028Z",
"VaultName": "my-vault",
"NumberOfArchives": 1,
"CreationDate": "2015-04-06T21:23:45.708Z"
}
]
}
Amazon Glacier 在执行操作时需要一个账户 ID 参数,但您可以使用连字符来指定正在使用的账户。
- Java
-
- 适用于 Java 的 SDK 2.x
-
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.glacier.model.ListVaultsRequest;
import software.amazon.awssdk.services.glacier.model.ListVaultsResponse;
import software.amazon.awssdk.services.glacier.GlacierClient;
import software.amazon.awssdk.services.glacier.model.DescribeVaultOutput;
import software.amazon.awssdk.services.glacier.model.GlacierException;
import java.util.List;
/**
* Before running this Java V2 code example, set up your development
* environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class ListVaults {
public static void main(String[] args) {
GlacierClient glacier = GlacierClient.builder()
.region(Region.US_EAST_1)
.build();
listAllVault(glacier);
glacier.close();
}
public static void listAllVault(GlacierClient glacier) {
boolean listComplete = false;
String newMarker = null;
int totalVaults = 0;
System.out.println("Your Amazon Glacier vaults:");
try {
while (!listComplete) {
ListVaultsResponse response = null;
if (newMarker != null) {
ListVaultsRequest request = ListVaultsRequest.builder()
.marker(newMarker)
.build();
response = glacier.listVaults(request);
} else {
ListVaultsRequest request = ListVaultsRequest.builder()
.build();
response = glacier.listVaults(request);
}
List<DescribeVaultOutput> vaultList = response.vaultList();
for (DescribeVaultOutput v : vaultList) {
totalVaults += 1;
System.out.println("* " + v.vaultName());
}
// Check for further results.
newMarker = response.marker();
if (newMarker == null) {
listComplete = true;
}
}
if (totalVaults == 0) {
System.out.println("No vaults found.");
}
} catch (GlacierException e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
}
- Python
-
- 适用于 Python 的 SDK (Boto3)
-
class GlacierWrapper:
"""Encapsulates Amazon S3 Glacier API operations."""
def __init__(self, glacier_resource):
"""
:param glacier_resource: A Boto3 Amazon S3 Glacier resource.
"""
self.glacier_resource = glacier_resource
def list_vaults(self):
"""
Lists vaults for the current account.
"""
try:
for vault in self.glacier_resource.vaults.all():
logger.info("Got vault %s.", vault.name)
except ClientError:
logger.exception("Couldn't list vaults.")
raise
有关 S AWS DK 开发者指南和代码示例的完整列表,请参阅使用带有 AWS SDK 的 Amazon Glacier。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。