멀티파트 업로드 중단 - Amazon Simple Storage Service

멀티파트 업로드 중단

멀티파트 업로드를 개시한 후에 부분 업로드를 시작합니다. Amazon S3는 부분들을 저장하며, 모든 부분을 업로드하고 멀티파트 업로드 완료 요청을 보낸 후에만 객체를 생성합니다. 완전한 멀티파트 업로드 요청을 수신하면 그 즉시 Amazon S3는 부분들을 결합해 객체를 생성합니다. 완전한 멀티파트 업로드 요청을 성공적으로 전송하지 못하면 S3는 부분들을 결합하지 않고 어떤 객체도 생성하지 않습니다. 부분들을 업로드한 후 멀티파트 업로드를 완료하지 않으려면 멀티파트 업로드를 중단해야 합니다.

업로드된 부분에 연결된 모든 스토리지에 대해 요금이 청구됩니다. 항상 멀티파트 업로드를 완료하거나 멀티파트 업로드를 중지하여 업로드된 부분을 제거하는 것이 좋습니다. 요금에 대한 자세한 내용은 멀티파트 업로드 및 요금 단원을 참조하세요.

버킷 수명 주기 구성을 사용하여 불완전한 멀티파트 업로드를 중지할 수도 있습니다. 자세한 내용은 불완전한 멀티파트 업로드를 삭제하도록 버킷 수명 주기 구성 설정 섹션을 참조하세요.

다음 섹션에서는 AWS Command Line Interface, REST API 또는 AWS SDK를 사용하여 Amazon S3에서 진행 중인 멀티파트 업로드를 중지하는 방법을 보여줍니다.

AWS CLI를 사용하여 멀티파트 업로드를 중지하는 방법에 대한 자세한 내용은 AWS CLI 명령 참조abort-multipart-upload를 참조하십시오.

REST API를 사용하여 멀티파트 업로드를 중지하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service API 참조AbortMultipartUpload를 참조하십시오.

Java

Java용 AWS SDK를 사용하여 진행 중인 멀티파트 업로드를 중지하려면 지정된 날짜 이전에 시작되어 아직 진행 중인 업로드를 중단할 수 있습니다. 사용자가 업로드를 시작한 후 완료 또는 중지할 때까지 업로드가 진행 중인 것으로 간주됩니다.

멀티파트 업로드를 중지하려면 다음을 수행할 수 있습니다.

1

S3Client 인스턴스를 만듭니다.

2

버킷 이름과 기타 필수 파라미터를 전달하여 클라이언트의 중단 메서드를 사용합니다.

참고

특정 멀티파트 업로드를 중지할 수도 있습니다. 자세한 내용은 AWS SDK 사용(하위 수준 API) 섹션을 참조하세요.

Java용 AWS SDK를 사용하여 멀티파트 업로드를 중단하는 방법의 예는 Amazon S3 API 참조Cancel a multipart upload를 참조하세요.

.NET

다음 C# 예제는 1주일 이상 전에 특정 버킷에서 시작되어 진행 중인 멀티파트 업로드를 모두 중지합니다. 코드 예제 설정 및 실행에 대한 자세한 내용은 AWS SDK for .NET 개발자 안내서AWS SDK for .NET 시작하기를 참조하세요.

using Amazon; using Amazon.S3; using Amazon.S3.Transfer; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class AbortMPUUsingHighLevelAPITest { private const string bucketName = "*** provide bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); AbortMPUAsync().Wait(); } private static async Task AbortMPUAsync() { try { var transferUtility = new TransferUtility(s3Client); // Abort all in-progress uploads initiated before the specified date. await transferUtility.AbortMultipartUploadsAsync( bucketName, DateTime.Now.AddDays(-7)); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } } }
참고

특정 멀티파트 업로드를 중지할 수도 있습니다. 자세한 내용은 AWS SDK 사용(하위 수준 API) 섹션을 참조하세요.

AmazonS3.abortMultipartUpload 메서드를 호출하여 진행 중인 멀티파트 업로드를 중단할 수 있습니다. 이 메서드는 Amazon S3에 업로드된 모든 부분을 삭제하므로 가용 리소스가 늘어나게 됩니다. 업로드 ID, 버킷 이름 및 키 이름을 제공해야 합니다. 다음은 진행 중인 멀티파트 업로드를 중지하는 방법을 보여주는 Java 코드 예제입니다.

멀티파트 업로드를 중지하려면 업로드에 사용된 업로드 ID, 버킷 및 키 이름을 제공해야 합니다. 멀티파트 업로드를 중지하면 해당 업로드 ID를 사용해 추가 파트를 업로드할 수 없습니다. Amazon S3 멀티파트 업로드에 대한 자세한 내용은 Amazon S3에서 멀티파트 업로드를 사용한 객체 업로드 및 복사 단원을 참조하십시오.

Java

AWS SDK for Java를 사용하여 진행 중인 특정 멀티파트 업로드를 중지하려면 하위 수준 API를 사용하여 버킷 이름, 객체 키 및 업로드 ID를 제공함으로써 업로드를 중단할 수 있습니다.

참고

특정 멀티파트 업로드를 중단하는 대신, 특정 시간 이전에 시작되어 아직 진행 중인 모든 멀티파트 업로드를 중지할 수 있습니다. 이 정리 작업은 시작되었지만 완료되거나 중지되지 않은 이전 멀티파트 업로드를 중지하는 데 유용합니다. 자세한 내용은 AWS SDK 사용(상위 수준 API) 섹션을 참조하세요.

Java용 AWS SDK를 사용하여 특정 멀티파트 업로드를 중단하는 방법의 예는 Amazon S3 API 참조Cancel a multipart upload를 참조하세요.

.NET

다음 C# 예제는 멀티파트 업로드를 중지하는 방법을 보여줍니다. 다음 코드가 포함된 전체 C# 예제는 AWS SDK 사용(하위 수준 API) 단원을 참조하십시오.

AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest { BucketName = existingBucketName, Key = keyName, UploadId = initResponse.UploadId }; await AmazonS3Client.AbortMultipartUploadAsync(abortMPURequest);

또한 특정 시간 이전에 시작되어 진행 중인 멀티파트 업로드를 중단할 수도 있습니다. 이 정리 작업은 완료 또는 중단되지 않은 멀티파트 업로드를 중단할 때 유용합니다. 자세한 내용은 AWS SDK 사용(상위 수준 API) 섹션을 참조하세요.

PHP

이 예제에서는 진행 중인 멀티파트 업로드를 중지하기 위해 AWS SDK for PHP 버전 3의 클래스를 사용하는 방법을 보여줍니다. AWS SDK for Ruby API에 대한 자세한 내용은 AWS SDK for Ruby – 버전 2를 참조하세요. 예를 들어 abortMultipartUpload() 메서드입니다.

AWS SDK for Ruby API에 대한 자세한 내용은 AWS SDK for Ruby – 버전 2를 참조하세요.

require 'vendor/autoload.php'; use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; $uploadId = '*** Upload ID of upload to Abort ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Abort the multipart upload. $s3->abortMultipartUpload([ 'Bucket' => $bucket, 'Key' => $keyname, 'UploadId' => $uploadId, ]);