メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for .NET を使用したオブジェクトのアップロード

次のプロセスの以下のタスクは、.NET のクラスを使用して、1 つのオブジェクトをアップロードする手順を示しています。この API には、データのアップロードを容易にするための、複数のバリエーション(オーバーロード)の PutObject メソッドが用意されています。

オブジェクトのアップロード

1

AmazonS3 クラスのインスタンスを作成します。

2

いずれかの AmazonS3.PutObject を実行します。バケット名、ファイルパス、ストリームなどの情報を提供する必要があります。この情報は、PutObjectRequest クラスのインスタンスを作成することによって指定します。

以下の C# コード例は、前述のタスクの例です。

Copy
static IAmazonS3 client; client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1); PutObjectRequest request = new PutObjectRequest() { BucketName = bucketName, Key = keyName, FilePath = filePath }; PutObjectResponse response2 = client.PutObject(request);

次の C# サンプルコードは、オブジェクトをアップロードします。オブジェクトデータはテキスト文字列としてコードに指定されています。コードではオブジェクトを 2 回アップロードします。

  • 最初の PutObjectRequest は、バケット名、キー名、およびコードに埋め込まれた文字列のみをサンプルオブジェクトデータとして指定します。

  • 2 つ目の PutObjectRequest は、オプションのオブジェクトメタデータや ContentType ヘッダーを含む追加情報を指定します。このリクエストは、アップロードするファイル名を指定します。

後続の AmazonS3.PutObject 呼び出しが行われるたびに、直前のアップロードが置き換えられます。作業サンプルを作成およびテストする方法については、「Amazon S3 .NET コード例の実行」を参照してください。

Copy
using System; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class UploadObject { static string bucketName = "*** bucket name ***"; static string keyName = "*** key name when object is created ***"; static string filePath = "*** absolute path to a sample file to upload ***"; static IAmazonS3 client; public static void Main(string[] args) { using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { Console.WriteLine("Uploading an object"); WritingAnObject(); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } static void WritingAnObject() { try { PutObjectRequest putRequest1 = new PutObjectRequest { BucketName = bucketName, Key = keyName, ContentBody = "sample text" }; PutObjectResponse response1 = client.PutObject(putRequest1); // 2. Put object-set ContentType and add metadata. PutObjectRequest putRequest2 = new PutObjectRequest { BucketName = bucketName, Key = keyName, FilePath = filePath, ContentType = "text/plain" }; putRequest2.Metadata.Add("x-amz-meta-title", "someTitle"); PutObjectResponse response2 = client.PutObject(putRequest2); } catch (AmazonS3Exception amazonS3Exception) { if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) { Console.WriteLine("Check the provided AWS Credentials."); Console.WriteLine( "For service sign up go to http://aws.amazon.com/s3"); } else { Console.WriteLine( "Error occurred. Message:'{0}' when writing an object" , amazonS3Exception.Message); } } } } }