将适用于 .NET 的 AWS SDK 与 Amazon Glacier 结合使用 - Amazon Glacier

此页面仅适用于使用文件库和 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 中,您现有的数据将确保安全,并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储, AWS 建议使用 Amazon S3 Glacier 存储类别,这些存储类别基于S3存储桶 APIs、完全 AWS 区域 可用性、更低的成本和 AWS 服务集成,可提供卓越的客户体验。如果您希望加强功能,可以考虑使用我们的 AWS 将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类别的解决方案指南,迁移到 Amazon S3 Glacier 存储类别。

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

将适用于 .NET 的 AWS SDK 与 Amazon Glacier 结合使用

适用于 .NET 的 AWS SDK API 在 AWSSDK.dll 中可用。有关下载适用于 .NET 的 AWS SDK 的信息,请转到示例代码库。如将 AWS SDK 与 Amazon Glacier 结合使用中所述,适用于 .NET 的 AWS SDK 提供高级和低级 API。

注意

低级 API 和高级 API 提供线程安全客户端来访问 Amazon Glacier。应用程序应创建一个客户端并在线程之间重复使用此客户端,您应将此作为一项最佳实践。

使用低级 API

低级 AmazonGlacierClient 类提供了映射到 Amazon Glacier(Amazon Glacier)(Amazon Glacier 的 API 参考)的底层 REST 操作的所有方法。调用其中任何一种方法时,您都必须创建相应的请求对象,并提供响应对象,所调用的方法可以在响应对象中向操作返回 Amazon Glacier 响应。

例如,AmazonGlacierClient 类提供了 CreateVault 方法来创建文件库。此方法会映射到底层的创建文件库 REST 操作(请参阅创建文件库(PUT vault))。要使用此方法,您必须创建 CreateVaultRequestCreateVaultResponse 类的实例,以提供请求信息和接收 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 的 AWS SDK 时,请求中的 AccountId 是可选的,因此,本指南中的所有低级示例都未设置此值。AccountId 就是 AWS 账户 ID。此值必须与用来对请求进行签名的凭证相关联的 AWS 账户 ID 相匹配。您可以指定 AWS 账户 ID,或者选择指定“-”,在后一种情况下,Amazon Glacier 使用与用来对请求进行签名的凭证关联的 AWS 账户 ID。如果您指定您的账户 ID,请勿在其中包括连字符。使用适用于 .NET 的 AWS SDK 时,如果您未提供账户 ID,则库会将账户 ID 设置为“-”。

使用高级 API

为了进一步简化应用程序开发,适用于 .NET 的 AWS SDK 提供了 ArchiveTransferManager 类,该类为低级 API 中的某些方法实现更高级的抽象。它为档案操作提供了有用的方法,例如 UploadDownload

例如,以下 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 对象时指定的 AWS 区域。此指南中的所有高级示例都使用了此模式。

注意

高级 ArchiveTransferManager 类仍然需要低级 AmazonGlacierClient 客户端,您可以显式传递该客户端或者让 ArchiveTransferManager 创建该客户端。

运行代码示例

入门 .NET 代码示例的最简单方式是安装适用于 .NET 的 AWS SDK。有关更多信息,请转到适用于 .NET 的 Amazon SDK

以下过程为您概述了测试此指南中提供的代码示例的步骤。

创建 .NET 代码示例的一般流程(使用 Visual Studio)

1

为 AWS 凭证创建凭证配置文件,如适用于 .NET 的 Amazon SDK 主题配置 AWS 凭证中所述。

2

使用 AWS 空项目模板创建新的 Visual Studio 项目。

3

将项目文件 Program.cs 中的代码替换为您正在阅读的部分中的代码。

4

运行该代码。验证是否使用 AWS 管理控制台创建了对象。有关 AWS 管理控制台 的更多信息,请转到 http://aws.amazon.com/console/

设置端点

默认情况下,适用于 .NET 的 AWS SDK 将端点设置为美国西部(俄勒冈州)区域(https://glacier.us-west-2.amazonaws.com)。您可以将端点设置为其他 AWS 区域,如以下 C# 代码段所示。

以下代码段说明如何使用低级 API 将端点设置为美国西部(俄勒冈州)区域(us-west-2)。

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

以下代码段说明如何使用高级 API 将端点设置为美国西部(俄勒冈州)区域。

var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);

有关受支持 AWS 区域和端点的最新列表,请参阅访问 Amazon Glacier