使用 AWS SDK for .NET 將封存上傳至 S3 Glacier 中的文件庫 - Amazon S3 Glacier

此頁面僅適用於使用 Vault 和 REST API 2012 年原始版本的 S3 Glacier 服務的現有客戶。

如果您要尋找封存儲存解決方案,建議您在 Amazon S3、S3 Glacier S3 Instant RetrievalS3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 中使用 S3 Glacier 儲存類別。若要進一步了解這些儲存選項,請參閱 Amazon S3 使用者指南 中的使用 S3 Glacier 儲存類別的 S3 Glacier 儲存類別和長期資料儲存Amazon S3 這些儲存類別使用 Amazon S3 API,適用於所有區域,並且可以在 Amazon S3 主控台中管理。它們提供 Storage Cost Analysis、Storage Lens、進階選用加密功能等功能。

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

使用 AWS SDK for .NET 將封存上傳至 S3 Glacier 中的文件庫

以下 C# 程式碼範例使用 AWS SDK for .NET 的高階 API 將範例存檔上傳到文件庫。在程式碼範例中,請注意下列事項:

  • 此範例會為指定的 Amazon S3 Glacier 區域端點建立 ArchiveTransferManager 類別的執行個體。

  • 此程式碼範例使用美國西部 (奧勒岡) 區域 (us-west-2)。

  • 本範例使用 ArchiveTransferManager 類別的 Upload API 操作以上傳封存。對於較小的封存,這個操作會將封存直接上傳到 S3 Glacier。對於較大的封存,此操作使用 S3 Glacier 的分段上傳 API 操作,將上傳分割成多個部分,一旦在將資料串流到 S3 Glacier 時遇到任何錯誤,可以更好地進行錯誤復原。

如需如何執行下列範例的逐步說明,請參閱 執行程式碼範例您必須更新程式碼,如所示的文件庫名稱和要上傳的封存檔案的名稱。

注意

S3 Glacier 會在文件庫中保存所有封存的庫存。當您上傳下列範例中的封存時,直到文件庫庫存更新前,封存都不會顯示在管理主控台的文件庫中。此更新通常一天執行一次。

範例 :使用 AWS SDK for .NET 的高階 API 上傳封存
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.docsamples { class ArchiveUploadHighLevel_GettingStarted { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); // Upload an archive. string archiveId = manager.Upload(vaultName, "getting started archive test", archiveToUpload).ArchiveId; Console.WriteLine("Copy and save the following Archive ID for the next step."); Console.WriteLine("Archive ID: {0}", archiveId); Console.WriteLine("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(); } } }