此页面仅适用于使用文件库和 2012 年原始 REST API 的 S3 Glacier 服务的现有客户。
如果您正在寻找归档存储解决方案,建议使用 Amazon S3 中的 S3 Glacier 存储类 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息,请参阅《Amazon S3 用户指南》中的 S3 Glacier 存储类
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon S3 Glacier 中使用创建文件库 适用于 .NET 的 Amazon SDK
适用于.NET 的 Amazon SDK APIs 提供的高级和低级都提供了一种创建文件库的方法。
使用 适用于 .NET 的 Amazon SDK高级 API 创建文件库
高级 API 的 ArchiveTransferManager
类提供了您可以用来在 Amazon
区域创建文件库的 CreateVault
方法。
示例:使用高级 API 进行文件库操作 适用于 .NET 的 Amazon SDK
以下 C# 代码示例在美国西部(俄勒冈州)区域创建了文件库,然后删除了该文件库。有关可以在其中创建文件库 Amazon Web Services 区域 的列表,请参阅访问 Amazon S3 Glacier。
有关如何运行以下示例的 step-by-step说明,请参阅运行代码示例。您需要更新文件库名称旁显示的代码。
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.docsamples { class VaultCreateDescribeListVaultsDeleteHighLevel { static string vaultName = "*** Provide vault name ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); manager.CreateVault(vaultName); Console.WriteLine("Vault created. To delete the vault, press Enter"); Console.ReadKey(); manager.DeleteVault(vaultName); Console.WriteLine("\nVault deleted. To continue, press Enter"); Console.ReadKey(); } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } } }
使用的低级 API 创建文件库 适用于 .NET 的 Amazon SDK
低级 API 为所有文件库操作提供了方法,包括创建和删除文件库、获取文件库描述以及获取在特定文件库中创建的文件库的列表。 Amazon Web Services 区域以下是使用 适用于 .NET 的 Amazon SDK创建文件库的步骤。
-
创建
AmazonGlacierClient
类(客户端)的实例。您需要指定要 Amazon Web Services 区域 在其中创建文件库的。您使用此客户端执行的所有操作都会应用到该 Amazon Web Services 区域。
-
通过创建一个
CreateVaultRequest
类的实例提供请求信息。Amazon S3 Glacier(S3 Glacier)要求您提供文件库名称和您的账户 ID。如果您不提供账户 ID,则系统会使用与您提供来对请求签名的证书相关联的账户 ID。有关更多信息,请参阅 适用于 .NET 的 Amazon SDK 与 Amazon S3 Glacier 搭配使用。
-
以参数形式提供请求对象,运行
CreateVault
方法。S3 Glacier 返回的响应在
CreateVaultResponse
对象中提供。
示例:使用的低级 API 进行文件库操作 适用于 .NET 的 Amazon SDK
以下 C# 示例说明了前面的步骤。此示例可在美国西部(俄勒冈州)区域创建文件库。此外,该代码示例还会检索文件库信息,列出同一个文件库中的所有文件库 Amazon Web Services 区域,然后删除创建的文件库。Location
打印的是文件库的相对 URI,其中包括您的账户 ID Amazon Web Services 区域、和文件库名称。
注意
有关底层 REST API 的信息,请参阅创建文件库(设置文件库)。
有关如何运行以下示例的 step-by-step说明,请参阅运行代码示例。您需要更新文件库名称旁显示的代码。
using System; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.docsamples { class VaultCreateDescribeListVaultsDelete { static string vaultName = "*** Provide vault name ***"; static AmazonGlacierClient client; public static void Main(string[] args) { try { using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2)) { Console.WriteLine("Creating a vault."); CreateAVault(); DescribeVault(); GetVaultsList(); Console.WriteLine("\nVault created. Now press Enter to delete the vault..."); Console.ReadKey(); DeleteVault(); } } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } static void CreateAVault() { CreateVaultRequest request = new CreateVaultRequest() { VaultName = vaultName }; CreateVaultResponse response = client.CreateVault(request); Console.WriteLine("Vault created: {0}\n", response.Location); } static void DescribeVault() { DescribeVaultRequest describeVaultRequest = new DescribeVaultRequest() { VaultName = vaultName }; 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 ); } static void GetVaultsList() { string lastMarker = null; Console.WriteLine("\n List of vaults in your account in the specific region ..."); do { ListVaultsRequest request = new ListVaultsRequest() { 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); } static void DeleteVault() { DeleteVaultRequest request = new DeleteVaultRequest() { VaultName = vaultName }; DeleteVaultResponse response = client.DeleteVault(request); } } }