使用Amazon SDK for .NET与 Amazon S3 Glacier - Amazon S3 Glacier
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用Amazon SDK for .NET与 Amazon S3 Glacier

AWSSDK.dll 中提供Amazon SDK for .NET API。有关下载Amazon SDK for .NET的更多信息,请转到示例代码库。如将 Amazon 开发工具包与 Amazon S3 Glacier 结合使用中所述,Amazon SDK for .NET提供高级和低级 API。

注意

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

使用低级 API

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

例如,AmazonGlacierClient 类提供了 CreateVault 方法来创建文件库。此方法会映射到底层的创建文件库 REST 操作(请参阅“创建文件库(设置文件库)”)。要使用此方法,您必须创建CreateVaultRequestCreateVaultResponse类提供请求信息和接收 S3 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。但是,在使用Amazon SDK for .NET时,请求中的 AccountId 是可选的,因此,本指南中的所有低级示例都未设置此值。这些区域有:AccountId是 Amazon Web Services 账户 ID。此值必须与 Amazon Web Services 账户 与用来对请求签名的凭证相关联的 ID。您可指定 Amazon Web Services 账户 ID 或可选的 “-”,在这种情况下,S3 冰川使用 Amazon Web Services 账户 与用来对请求签名的凭证相关联的 ID。如果您指定您的账户 ID,请勿在其中包括连字符。使用Amazon SDK for .NET时,如果您未提供账户 ID,则库会将账户 ID 设置为“-”。

使用高级 API

为了进一步简化应用程序开发,Amazon SDK for .NET提供了 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;

请注意,您执行的任何操作都会应用到Amazon您在创建ArchiveTransferManager对象。此指南中的所有高级示例都使用了此模式。

注意

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

运行代码示例

入门 .NET 代码示例的最简单方式是安装 Amazon SDK for .NET。有关更多信息,请转至适用于 .NET 的 Amazon 软件开发工具包

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

1

为您的Amazon凭据,如适用于 .NET 的亚马逊软件开发工具包主题中所述配置Amazon凭证

2

创建新的 Visual Studio 项目Amazon清空项目模板。

3

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

4

运行该代码。验证是否使用 Amazon Web Services Management Console创建了对象。有关 的更多信息Amazon Web Services Management Console,转到http://aws.amazon.com/console/

设置终端节点

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

以下代码段显示了如何使用美国西部(俄勒冈)区域 (us-west-2)中的低级 API。

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

以下代码段显示了如何使用高级 API 将终端节点设置为美国西部(俄勒冈)区域。

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

有关支持的Amazon区域和终端节点,请参阅访问 Amazon S3 Glacier