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

マルチパートアップロードの進行状況の追跡

高レベルマルチパートアップロード API は、TransferUtility クラスを使用してデータをアップロードするときに、アップロードの進行状況を追跡するイベント TransferUtilityUploadRequest.UploadProgressEvent を提供します。

イベントが定期的に発生し、転送されるバイト総数、イベントの発生時に転送されたバイト数など、マルチパートアップロードの進行状況の情報を返します。

以下の C# コード例は、UploadProgressEvent イベントを登録し、ハンドラを記述する方法を示しています。

Copy
TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1)); // Use TransferUtilityUploadRequest to configure options. // In this example we subscribe to an event. TransferUtilityUploadRequest uploadRequest = new TransferUtilityUploadRequest { BucketName = existingBucketName, FilePath = filePath, Key = keyName }; uploadRequest.UploadProgressEvent += new EventHandler<UploadProgressArgs> (uploadRequest_UploadPartProgressEvent); fileTransferUtility.Upload(uploadRequest); static void uploadRequest_UploadPartProgressEvent(object sender, UploadProgressArgs e) { // Process event. Console.WriteLine("{0}/{1}", e.TransferredBytes, e.TotalBytes); }

以下の C# コード例では、ファイルを Amazon S3 バケットにアップロードし、TransferUtilityUploadRequest.UploadProgressEvent イベントを登録することで進行状況を追跡しています。作業サンプルを作成およびテストする方法については、「.NET コード例のテスト」を参照してください。

Copy
using System; using System.Collections.Specialized; using System.Configuration; using Amazon.S3; using Amazon.S3.Transfer; namespace s3.amazon.com.docsamples { class TrackMPUUsingHighLevelAPI { static string existingBucketName = "*** Provide bucket name ***"; static string keyName = "*** Provide key name ***"; static string filePath = "*** Provide file to upload ***"; static void Main(string[] args) { try { TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1)); // Use TransferUtilityUploadRequest to configure options. // In this example we subscribe to an event. TransferUtilityUploadRequest uploadRequest = new TransferUtilityUploadRequest { BucketName = existingBucketName, FilePath = filePath, Key = keyName }; uploadRequest.UploadProgressEvent += new EventHandler<UploadProgressArgs> (uploadRequest_UploadPartProgressEvent); fileTransferUtility.Upload(uploadRequest); Console.WriteLine("Upload completed"); } catch (AmazonS3Exception e) { Console.WriteLine(e.Message, e.InnerException); } } static void uploadRequest_UploadPartProgressEvent( object sender, UploadProgressArgs e) { // Process event. Console.WriteLine("{0}/{1}", e.TransferredBytes, e.TotalBytes); } } }