使用 AWS SDK for .NET 在 Amazon S3 Glacier 中建立文件庫 - Amazon S3 Glacier

此頁面僅適用於使用保管庫和 2012 年起原始 REST API 的 S3 冰川服務的現有客戶。

如果您正在尋找存檔儲存解決方案,我們建議您使用 Amazon S3 中的 S3 Glacier 儲存類別、S3 冰川即時擷取S3 冰川彈性擷取和 S3 Glacier Deep Archive。若要進一步了解這些儲存選項,請參閱 Amazon S3 使用者指南中的 S3 Glacier 儲存類別和使用 S3 Glacier 儲存類別的長期資料儲存。這些儲存類別使用 Amazon S3 API,可在所有區域使用,並且可以在 Amazon S3 主控台中管理。它們提供了諸如存儲成本分析,存儲鏡頭,包括多種加密選項的安全功能等功能。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS SDK for .NET 在 Amazon S3 Glacier 中建立文件庫

適用於 .NET 的 Amazon 開發套件提供的高階和低階 API 都提供了文件庫的建立方法。

使用 AWS SDK for .NET 的高階 API 建立文件庫

高階 API 的 ArchiveTransferManager 類別提供可用於在 AWS 區域中建立文件庫的 CreateVault 方法。

範例:使用 AWS SDK for .NET 的高階 API 的文件庫操作

以下 C# 程式碼範例建立和刪除美國西部 (奧勒岡) 區域中的文件庫。如需您可在其中建立文件庫的 AWS 區域 清單,請參閱存取 Amazon S3 Glacier

如需如何執行下列範例的逐步說明,請參閱 執行程式碼範例。您需要更新所示具有保管庫名稱的程式碼。

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(); } } }

使用 AWS SDK for .NET 的低階 API 建立文件庫

低階 API 為所有文件庫操作提供了方法,包括建立和刪除文件庫、取得文件庫描述以及取得在特定 AWS 區域 中建立的文件庫清單。以下是使用 AWS SDK for .NET 建立文件庫的步驟。

  1. 建立 AmazonGlacierClient 類別的執行個體 (用戶端)。

    您需要指定要在其中建立文件庫的 AWS 區域。所有您使用此用戶端執行的操作均會套用到該 AWS 區域。

  2. 您可以透過建立 CreateVaultRequest 類別的執行個體來提供請求資訊。

    Amazon S3 Glacier (S3 Glacier) 要求您提供文件庫名稱和帳戶 ID。如果您不提供帳戶 ID,則會使用與您提供來簽署請求之登入資料關聯的帳戶 ID。如需更多詳細資訊,請參閱 將 AWS SDK for .NET 與 Amazon S3 Glacier 搭配使用

  3. 以參數形式提供請求物件,以便執行 CreateVault 方法。

    S3 Glacier 傳回的回應在 CreateVaultResponse 物件中是可用的。

範例:使用 AWS SDK for .NET 的低階 API 的文件庫操作

下列 C# 範例描述前述步驟。此範例在美國西部 (奧勒岡) 區域建立文件庫。此外,程式碼範例擷取文件庫資訊, 列出同一 AWS 區域 中的所有文件庫,然後刪除所建立的文件庫。列印的 Location 是文件庫的相對 URI,其中包含帳戶 ID、AWS 區域 和文件庫名稱。

注意

如需基礎 REST API 的資訊,請參閱 建立文件庫 (PUT 文件庫)

如需如何執行下列範例的逐步說明,請參閱 執行程式碼範例。您需要更新所示具有保管庫名稱的程式碼。

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); } } }