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

ファイルのアップロード

以下のタスクは、高レベル .NET クラスを使用して、ファイルをアップロードする手順を示しています。この API には、データのアップロードを容易にするための、複数のバリエーション(オーバーロード)の Upload メソッドが用意されています。

高レベル API のファイルアップロードプロセス

1

AWS 認証情報を指定して、TransferUtility クラスのインスタンスを作成します。

2

ファイル、ストリーム、またはディレクトリのいずれからデータをアップロードするかに応じて、いずれかの TransferUtility.Upload オーバーロードを実行します。

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

Copy
TransferUtility utility = new TransferUtility(); utility.Upload(filePath, existingBucketName);

.NET API を使用して大きなファイルをアップロードする場合、データがリクエストストリームに書き込まれる間にも、タイムアウトが発生することがあります。以下の C# コード例に示すように、TransferUtilityConfig.DefaultTimeout を使用して明示的なタイムアウトを設定することができます。

Copy
TransferUtilityConfig config = new TransferUtilityConfig(); config.DefaultTimeout = 11111; TransferUtility utility = new TransferUtility(config);

以下の C# コード例では、ファイルを Amazon S3 バケットにアップロードしています。この例は、さまざまな TransferUtility.Upload オーバーロードを使用してファイルをアップロードする方法を示しています。後続のアップロード呼び出しが行われるたびに、前のアップロードが置き換えられます。作業サンプルを作成およびテストする方法については、「.NET コード例のテスト」を参照してください。

Copy
using System; using System.IO; using Amazon.S3; using Amazon.S3.Transfer; namespace s3.amazon.com.docsamples { class UploadFileMPUHighLevelAPI { static string existingBucketName = "*** Provide bucket name ***"; static string keyName = "*** Provide your object key ***"; static string filePath = "*** Provide file name ***"; static void Main(string[] args) { try { TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1)); // 1. Upload a file, file name is used as the object key name. fileTransferUtility.Upload(filePath, existingBucketName); Console.WriteLine("Upload 1 completed"); // 2. Specify object key name explicitly. fileTransferUtility.Upload(filePath, existingBucketName, keyName); Console.WriteLine("Upload 2 completed"); // 3. Upload data from a type of System.IO.Stream. using (FileStream fileToUpload = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { fileTransferUtility.Upload(fileToUpload, existingBucketName, keyName); } Console.WriteLine("Upload 3 completed"); // 4.Specify advanced settings/options. TransferUtilityUploadRequest fileTransferUtilityRequest = new TransferUtilityUploadRequest { BucketName = existingBucketName, FilePath = filePath, StorageClass = S3StorageClass.ReducedRedundancy, PartSize = 6291456, // 6 MB. Key = keyName, CannedACL = S3CannedACL.PublicRead }; fileTransferUtilityRequest.Metadata.Add("param1", "Value1"); fileTransferUtilityRequest.Metadata.Add("param2", "Value2"); fileTransferUtility.Upload(fileTransferUtilityRequest); Console.WriteLine("Upload 4 completed"); } catch (AmazonS3Exception s3Exception) { Console.WriteLine(s3Exception.Message, s3Exception.InnerException); } } } }