AWS SDK for .NET の使用
AWS SDK for .NET は、Amazon S3 のバケットおよびオブジェクトのオペレーション用の API を提供しています。オブジェクト操作用として、単一操作で複数のオブジェクトをアップロードするための API に加え、大きなオブジェクトをパートごとにアップロードするための API も用意されています (マルチパートアップロードを使用したオブジェクトのアップロードとコピー を参照)。
AWS SDK for .NET では、高レベル API を使うか低レベル API を使うかを選択できます。
低レベル API
下位 API は、バケットやオブジェクトに適用される、作成、更新、削除などの、基盤となる Amazon S3 REST オペレーションに対応します。低レベルのマルチパートアップロード API (「マルチパートアップロードを使用したオブジェクトのアップロードとコピー」を参照) を使用して大きいオブジェクトをアップロードすると、細かく制御できるようになります。たとえば、マルチパートアップロードを一時停止して再開したり、アップロード中にパートサイズを変更したり、データのサイズが事前にわからない場合にアップロードを開始したりすることができるようになります。このような制御の必要がない場合は、高レベル API を使ってオブジェクトをアップロードしてください。
高レベル API
SDK では、オブジェクトのアップロード用に、TransferUtility
クラスによる高レベルの抽象化を提供しています。高レベル API はより単純な API で、ほんの数行のコードを使って、ファイルやストリームを Amazon S3 にアップロードすることができます。データをアップロードする際、前述の低レベル API のセクションで説明したような各種の制御が必要ない場合は、高レベル API を使用してください。
小さなサイズのデータの場合は、TransferUtility
API により、単一の操作でデータをアップロードできます。ただしデータのサイズが特定のしきい値を超えると、TransferUtility
はマルチパートアップロード API の使用に切り替わります。デフォルトでは、複数のスレッドを使用して複数のパートを同時にアップロードします。あるパートのアップロードに失敗すると、API は、失敗したパートのアップロードを 3 回まで再試行します。ただしこれらのオプションは設定変更できます。
データのソースにストリームを使っている場合、TransferUtility
クラスは同時アップロードを実行しません。
.NET API の構成
AWS SDK for .NET を使用して Amazon S3 アプリケーションを作成する場合は、AWSSDK.dll
を使用します。このアセンブリの以下のネームスペースが、マルチパートアップロード API を提供します。
-
Amazon.S3.Transfer— データをパートごとにアップロードするための上位 API を提供します。
データをアップロードするための、ファイル、ディレクトリ、またはストリームを指定する
TransferUtility
クラスが含まれます。またTransferUtilityUploadRequest
およびTransferUtilityUploadDirectoryRequest
クラスが含まれており、同時スレッドの数、パートのサイズ、オブジェクトメタデータ、ストレージクラス (STANDARD、REDUCED_REDUNDANCY)、オブジェクトアクセスコントロールリスト (ACL) などの高度な設定を指定できます。 -
Amazon.S3— 下位 API の実装を提供します。
Amazon S3 REST マルチパートアップロード API に対応するメソッドを提供します (REST API の使用 を参照)。
-
Amazon.S3.Model— リクエストを作成しレスポンスを処理するための下位 API クラスを提供します。たとえば、マルチパートアップロードを開始する際に使用できる
InitiateMultipartUploadRequest
およびInitiateMultipartUploadResponse
クラスや、パートをアップロードする際に使用できるUploadPartRequest
およびUploadPartResponse
クラスなどを提供します。 -
Amazon.S3.Encryption—
AmazonS3EncryptionClient
を提供します。 -
Amazon.S3.Util—
AmazonS3Util
やBucketRegionDetector
など、さまざまなユーティリティクラスを提供します。
AWS SDK for .NET API の詳細については、AWS SDK for .NET バージョン 3 の API リファレンスを参照してください。
Amazon S3 .NET コード例の実行
このガイドの .NET コード の例は、AWS SDK for .NET バージョン 3.0 と互換性があります。コード例を設定および実行する方法の詳細については、AWS SDK for .NET デベロッパーガイドのAWS SDK for .NET の開始方法を参照してください。