디렉터리 버킷의 객체에 데이터 추가 - Amazon Simple Storage Service

디렉터리 버킷의 객체에 데이터 추가

디렉터리 버킷의 S3 Express One Zone 스토리지 클래스에 저장된 기존 객체의 끝에 데이터를 추가할 수 있습니다. 일정 기간 동안 지속적으로 데이터를 작성하거나 객체에 작성하는 동안 객체를 읽어야 할 경우 객체에 데이터를 추가하는 기능을 사용하는 것이 좋습니다. 객체에 데이터를 추가하는 작업은 로그 파일에 새 로그 항목을 추가하거나 트랜스코딩 후 스트리밍될 때 비디오 파일에 새 비디오 세그먼트를 추가하는 등의 사용 사례에서 흔히 볼 수 있습니다. 객체에 데이터를 추가하면 기존에는 로컬 스토리지에 데이터를 결합한 후 최종 객체를 Amazon S3에 복사했던 애플리케이션을 간소화할 수 있습니다.

객체에 추가할 수 있는 데이터에 대한 최소 크기 요구 사항은 없습니다. 그러나 단일 요청에서 객체에 추가할 수 있는 데이터의 최대 크기는 5GB입니다. 이는 Amazon S3 API를 사용하여 데이터를 업로드할 경우의 최대 요청 크기와 한도가 같습니다.

각 추가 작업이 성공하면 객체의 일부를 생성하며 각 객체에는 최대 10,000개의 파트가 있을 수 있습니다. 다시 말해 최대 10,000번까지 객체에 데이터를 추가할 수 있습니다. S3 멀티파트 업로드를 사용하여 객체를 생성할 경우 업로드된 각 파트는 총 최대 10,000개의 파트에 포함됩니다. 예를 들어 파트 1,000개로 구성된 멀티파트 업로드로 생성된 객체에 최대 9,000번 추가할 수 있습니다.

참고

파트 한도에 도달하면 TooManyParts 오류가 발생합니다. CopyObject API를 사용하여 횟수를 재설정할 수 있습니다.

파트를 객체에 병렬로 업로드하고 파트가 업로드되는 동안 파트를 읽을 필요가 없을 경우 Amazon S3 멀티파트 업로드를 사용하는 것이 좋습니다. 자세한 내용은 멀티파트 업로드 사용을 참조하세요.

객체에 대한 데이터 추가는 S3 Express One Zone 스토리지 클래스에 저장된 디렉터리 버킷의 객체에 대해서만 지원됩니다. S3 Express One Zone에 대한 자세한 내용은 S3 Express One Zone 시작하기를 참조하세요.

AWS SDK, AWS CLI 및 PutObject API를 사용하여 디렉터리 버킷의 객체에 데이터를 추가할 수 있습니다. PutObject 요청을 할 때 x-amz-write-offset-bytes 헤더를 추가할 객체의 크기로 설정합니다. PutObject API 작업을 사용하려면 CreateSession API를 사용하여 디렉터리 버킷의 객체에 액세스하기 위한 임시 보안 자격 증명을 설정해야 합니다. 자세한 내용은 Amazon S3 API ReferencePutObjectCreateSession 섹션을 참조하세요.

성공적인 각 추가 작업은 PutObject 요청으로 청구됩니다. 자세한 가격 책정 정보는 Amazon S3 pricing 섹션을 참조하세요.

참고

1.12 릴리스부터 Mountpoint for Amazon S3는 S3 Express One Zone에 저장된 객체에 데이터 추가를 지원합니다. 시작하려면 --incremental-upload 플래그를 설정하여 옵트인해야 합니다. Mountpoint에 대한 자세한 내용은 Mountpoint 작업을 참조하세요.

추가된 데이터를 업로드하는 동안 CRC(순환 중복 검사) 알고리즘을 사용할 경우 HeadObject 또는 GetObject 요청을 사용하여 전체 객체 CRC 기반 체크섬을 검색할 수 있습니다. 추가된 데이터를 업로드하는 동안 SHA-1 또는 SHA-256 알고리즘을 사용할 경우 추가된 파트의 체크섬을 검색하고 이전 PutObject 응답에서 반환된 SHA 체크섬을 사용하여 무결성을 확인할 수 있습니다. 자세한 내용은 데이터 보호 및 암호화를 참조하세요.

AWS CLI, AWS SDK 및 REST API를 사용하여 객체에 데이터 추가

AWS Command Line Interface(AWS CLI), AWS SDK 및 REST API를 사용하여 객체에 데이터를 추가할 수 있습니다.

다음 put-object 예시 명령은 AWS CLI를 사용하여 객체에서 데이터를 추가할 수 있는 방법을 보여줍니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3api put-object --bucket amzn-s3-demo-bucket--azid--x-s3 --key sampleinput/file001.bin --body bucket-seed/file001.bin --write-offset-bytes size-of-sampleinput/file001.bin
SDK for Java

AWS SDK for Java를 사용하여 객체에 데이터를 추가할 수 있습니다.

var putObjectRequestBuilder = PutObjectRequest.builder() .key(key) .bucket(bucketName) .writeOffsetBytes(9); var response = s3Client.putObject(putObjectRequestBuilder.build());
SDK for Python
s3.put_object(Bucket='amzn-s3-demo-bucket--use2-az2--x-s3', Key='2024-11-05-sdk-test', Body=b'123456789', WriteOffsetBytes=9)

객체에 데이터를 추가하기 위해 REST 요청을 보낼 수 있습니다. 자세한 내용은 PutObject 단원을 참조하십시오.