메뉴
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 이벤트를 구독하여 진행률을 추적합니다. 실제 예제를 작성하여 테스트하는 방법에 대한 자세한 내용은 Amazon S3 .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); } } }