메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

파일 업로드

다음 작업은 상위 수준 .NET 클래스를 사용하여 파일을 업로드하는 방법을 보여 줍니다. API는 쉽게 데이터를 업로드할 수 있도록 Upload 메서드에 overloads라고 하는 여러 변형을 제공합니다.

상위 수준 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 오버로드를 사용하여 파일을 업로드하는 방법을 보여 줍니다. 각각의 후속 업로드 호출은 이전 업로드를 교체합니다. 실제 예제를 작성하여 테스트하는 방법에 대한 자세한 내용은 Amazon S3 .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); } } } }