使用 AWS SDK for .NET - Amazon Simple Storage Service

使用 AWS SDK for .NET

AWS SDK for .NET 為 Amazon S3 儲存貯體和物件操作提供 API。針對物件操作,除了提供 API 透過單一操作來上傳物件之外,開發套件還提供 API 來分段上傳大型物件 (請參閱「使用分段上傳來上傳和複製物件」)。

AWS SDK for .NET 可讓您選擇使用高階或低階 API。

低階 API

低階 API 對應至基礎 Amazon S3 REST 操作,包含套用至儲存貯體與物件的建立、更新與刪除操作。在上傳大型物件時使用低階分段上傳 API (請參閱 使用分段上傳來上傳和複製物件),可以提供更好的控制。例如,這可讓您暫停後再繼續分段上傳,在上傳時改變部分的大小,或是在您未事先知道資料大小時開始上傳。如果您沒有上述需求,請使用高階 API 來上傳物件。

高階 API

針對上傳物件,開發套件透過提供 TransferUtility 類別,來提供較高階的抽象概念。高階 API 是較簡單的 API,只要幾行程式碼,您就可以將檔案與串流上傳至 Amazon S3。除非您需要控制上傳,否則您應該使用此 API 來上傳資料,如上面的「低階 API」一節所述。

如果資料大小較小,TransferUtility API 會透過單一操作來上傳資料。不過,TransferUtility 會在資料大小達到特定閾值時切換成使用分段上傳 API。預設會使用多個執行緒同時上傳多個部分。如果分段上傳失敗,則 API 會重試失敗的分段上傳最多三次。不過,這些是可設定的選項。

注意

在您使用資料來源的串流時,TransferUtility 類別不會執行並行上傳。

.NET API 組織

使用 AWS SDK for .NET 編寫 Amazon S3 應用程式時,您可以使用 AWSSDK.dll。本組件中的下列命名空間提供分段上傳 API:

  • Amazon.S3.Transfer—提供高階 API 將資料分段上傳。

    它包含的 TransferUtility 類別可讓您指定檔案、目錄或串流來上傳資料。這也包含了 TransferUtilityUploadRequestTransferUtilityUploadDirectoryRequest 類別以設定進階設定,例如,並行執行緒數量、部分大小、物件中繼資料、儲存體方案 (STANDARD、REDUCED_REDUNDANCY) 與物件存取控制清單 ACL。

  • Amazon.S3—提供低階 API 的實作。

    它提供的方法對應至 Amazon S3 REST 分段上傳 API (請參閱使用 REST API)。

  • Amazon.S3.Model—提供低階 API 類別來建立要求及處理回應。例如,它提供您可在起始分段上傳時使用的 InitiateMultipartUploadRequestInitiateMultipartUploadResponse 類別,以及您可在分段上傳時使用的 UploadPartRequestUploadPartResponse 類別。

  • Amazon.S3.Encryption— 提供 AmazonS3EncryptionClient

  • Amazon.S3.Util— 提供各種公用程式類別,例如:AmazonS3UtilBucketRegionDetector

如需AWS SDK for .NET API 的詳細資訊,請參閱適用於 .NET 的 AWS SDK 第 3 版 API 參考

執行 Amazon S3 .NET 程式碼範例

本指南的 .NET 程式碼範例與AWS SDK for .NET 3.0 版相容。如需設定及執行程式碼範例的資訊,請參閱《適用於 .NET 的 AWS SDK 開發人員指南》中的適用於 .NET 的 AWS SDK 入門