此页面仅适用于使用 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 存储类别,这些存储类别
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 .NET 的 Amazon SDK 与 Amazon Glacier 搭配使用
适用于 .NET 的 Amazon SDK API 在中可用AWSSDK.dll。有关下载的信息 适用于 .NET 的 Amazon SDK,请转到示例代码库
注意
低级 API 和高级 API 为访问 Amazon Glacier 提供了线程安全的客户端。应用程序应创建一个客户端并在线程之间重复使用此客户端,您应将此作为一项最佳实践。
使用低级 API
低级AmazonGlacierClient类提供了映射到 Amazon Glacier(Amazon Glacier)(亚马逊 Glacier 的 API 参考)底层 REST 操作的所有方法。调用这些方法中的任何一个时,您都必须创建相应的请求对象并提供一个响应对象,在该响应对象中,该方法可以返回对操作的 Amazon Glacier 响应。
例如,AmazonGlacierClient 类提供了 CreateVault 方法来创建文件库。此方法会映射到底层的创建文件库 REST 操作(请参阅“创建文件库(设置文件库)”)。要使用此方法,您必须创建CreateVaultRequest和CreateVaultResponse类的实例以提供请求信息并接收 Amazon Glacier 响应,如以下 C# 代码段所示:
AmazonGlacierClient client; client = new AmazonGlacierClient(Amazon.RegionEndpoint.USEast1); CreateVaultRequest request = new CreateVaultRequest() { AccountId = "-", VaultName = "*** Provide vault name ***" }; CreateVaultResponse response = client.CreateVault(request);
指南中的所有低级示例都使用了此模式。
注意
在创建请求时,前面的代码段会指定 AccountId。但是,使用时 适用于 .NET 的 Amazon SDK,请求AccountId中的是可选的,因此本指南中的所有低级示例都没有设置此值。AccountId就是 Amazon Web Services 账户 身份证。此值必须与用于签署请求的凭据关联的 Amazon Web Services 账户 ID 相匹配。您可以指定 Amazon Web Services 账户 ID,也可以选择指定 '-',在这种情况下,Amazon Glacier 使用与用于签署请求的凭证关联的 Amazon Web Services 账户 ID。如果您指定您的账户 ID,请勿在其中包括连字符。使用时 适用于 .NET 的 Amazon SDK,如果您不提供账户 ID,则库会将账户 ID 设置为 '-'。
使用高级 API
为了进一步简化应用程序开发, 适用于 .NET 的 Amazon SDK 提供了为低ArchiveTransferManager级 API 中的某些方法实现更高级别抽象的类。它为归档操作提供了有用的方法,例如 Upload 和 Download。
例如,以下 C# 代码段使用了 Upload 高级方法来上传档案。
string vaultName = "examplevault"; string archiveToUpload = "c:\folder\exampleArchive.zip"; var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USEast1); string archiveId = manager.Upload(vaultName, "archive description", archiveToUpload).ArchiveId;
请注意,您执行的任何操作都适用于您在创建ArchiveTransferManager对象时指定的 Amazon 区域。此指南中的所有高级示例都使用了此模式。
注意
高级 ArchiveTransferManager 类仍然需要低级 AmazonGlacierClient 客户端,您可以显式传递该客户端或者让 ArchiveTransferManager 创建该客户端。
运行代码示例
入门 .NET 代码示例的最简单方式是安装 适用于 .NET 的 Amazon SDK。有关更多信息,请转到适用于 .NET 的 Amazon SDK
以下过程为您概述了测试此指南中提供的代码示例的步骤。
1 |
按照适用于.NET 的 Amazon SDK 主题配置 Amazon 凭证中所述,为您的证书创建 Amazon 凭证配置文件。 |
2 |
使用 Amazon 空项目模板创建新的 Visual Studio 项目。 |
3 |
将项目文件 |
4 |
运行该代码。验证是否使用 Amazon Web Services Management Console创建了对象。有关的更多信息 Amazon Web Services Management Console,请访问 http://aws.amazon.com/console/ |
设置端点
默认情况下,将终端节点 适用于 .NET 的 Amazon SDK 设置为美国西部(俄勒冈)区域 (https://glacier.us-west-2.amazonaws.com)。您可以将终端节点设置为其他 Amazon 区域,如以下 C# 片段所示。
以下代码段说明如何使用低级 API 将端点设置为美国西部(俄勒冈州)区域 (us-west-2)。
AmazonGlacierClient client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2);
以下代码段说明如何使用高级 API 将端点设置为美国西部(俄勒冈州)区域。
var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
有关支持的 Amazon 区域和终端节点的最新列表,请参阅访问亚马逊 Glacier。