디렉터리 버킷의 객체 이름 바꾸기
RenameObject
작업을 사용하면 데이터 이동 없이 S3 Express One Zone 스토리지 클래스를 사용하는 디렉터리 버킷의 기존 객체 이름을 원자적으로 바꿀 수 있습니다. 기존 객체의 이름을 소스로 지정하고 객체의 새 이름을 동일한 디렉터리 버킷 내의 대상으로 지정하여 객체의 이름을 바꿀 수 있습니다. 슬래시(/
) 구분 기호 문자로 끝나는 객체에서는 RenameObject
API 작업이 성공하지 못합니다. 자세한 내용은 Amazon S3 객체 이름 지정을 참조하세요.
RenameObject
작업은 일반적으로 객체 크기와 관계없이 몇 밀리초 내에 완료됩니다. 이 기능은 로그 파일 관리, 미디어 처리 및 데이터 분석과 같은 애플리케이션을 가속화합니다. 또한 RenameObject
는 스토리지 클래스, 암호화 유형, 생성 날짜, 마지막 수정 날짜 및 체크섬 속성을 포함한 모든 객체 메타데이터 속성을 보존합니다.
참고
RenameObject
는 S3 Express One Zone 스토리지 클래스에 저장된 객체에 대해서만 지원됩니다.
RenameObject
작업에 대한 액세스 권한을 부여하려면 세션 기반 권한 부여를 위해 CreateSession
작업을 사용하는 것이 좋습니다. 특히 버킷 정책 또는 ID 기반 정책에서 디렉터리 버킷에 s3express:CreateSession
권한을 부여합니다. 그런 다음, 디렉터리 버킷에서 CreateSession
API를 직접 호출하여 세션 토큰을 가져옵니다. 요청 헤더에 세션 토큰을 포함하여 이 작업에 API 요청을 할 수 있습니다. 세션 토큰이 만료되면 다른 CreateSession
API 직접 호출을 수행하여 사용할 새 세션 토큰을 생성합니다. AWS CLI 및 AWS SDK는 세션이 만료될 때 서비스 중단을 방지하기 위해 세션 토큰을 자동으로 새로 고치는 등 세션을 생성하고 관리합니다. 권한 부여에 대한 자세한 내용은 Amazon S3 API 참조의 CreateSession
섹션을 참조하세요. 영역 엔드포인트 API 작업에 대한 자세한 내용은 CreateSession
을 사용하여 영역 엔드포인트 API 작업 권한 부여를 참조하세요.
기존 객체를 덮어쓰지 않으려면 RenameObject
요청에 ‘*’
값과 함께 If-None-Match
조건부 헤더를 추가하면 됩니다. 객체 이름이 이미 있는 경우 Amazon S3에서 412 Precondition Failed
오류를 반환합니다. 자세한 내용은 Amazon S3 API 참조의 RenameObject
섹션을 참조하세요.
RenameObject
는 AWS CloudTrail에 로깅되는 영역 엔드포인트 API 작업(객체 수준 또는 데이터 플레인 작업)입니다. CloudTrail을 사용하여 디렉터리 버킷의 객체에 대해 수행된 RenameObject
작업에 대한 정보를 수집할 수 있습니다. 자세한 내용은 AWS CloudTrail로 디렉터리 버킷에 로그인 및 디렉터리 버킷에 대한 CloudTrail 로그 파일 예제를 참조하세요.
S3 Express One Zone은 RenameObject
를 지원하는 유일한 스토리지 클래스이며, S3 Express One Zone에서의 PUT
, COPY
, POST
및 LIST
요청과 가격이 동일합니다(요청 1,000개당). 자세한 내용은 Amazon S3 요금
객체 이름 바꾸기
디렉터리 버킷의 객체 이름을 바꾸려면 Amazon S3 콘솔, AWS CLI, AWS SDK, REST API 또는 Mountpoint for Amazon S3(버전 1.19.0 이상)를 사용하면 됩니다.
디렉터리 버킷의 객체 이름을 바꾸는 방법
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 S3 콘솔을 엽니다. -
탐색 창에서 버킷을 선택하고 디렉터리 버킷 탭을 선택합니다. 이름을 바꿀 객체가 포함된 Amazon S3 디렉터리 버킷으로 이동합니다.
-
이름을 바꾸려는 객체의 확인란을 선택합니다.
-
작업 메뉴에서 객체 이름 바꾸기를 선택합니다.
-
새 객체 이름 상자에 객체의 새 이름을 입력합니다.
참고
기존 객체와 동일한 객체 이름을 지정하면 작업이 실패하고 Amazon S3가
412 Precondition Failed
오류를 반환합니다. 객체 키 이름 길이는 1,024바이트를 초과할 수 없습니다. 객체 이름에 포함된 접두사는 총 길이에 포함됩니다. 객체 이름 바꾸기를 선택합니다. Amazon S3가 객체의 이름을 바꿉니다.
rename-object
예시에서는 AWS CLI를 사용하여 객체의 이름을 바꾸는 방법을 보여줍니다. 이러한 명령을 실행하려면 사용자 입력 자리 표시자
를 실제 정보로 대체합니다.
다음 예시에서는 소스 객체의 ETag에 대한 조건부 검사를 사용하여 객체의 이름을 바꾸는 방법을 보여줍니다.
aws s3api rename-object \ --bucket
amzn-s3-demo-bucket--usw2-az1--x-s3
\ --keynew-file.txt
\ --rename-sourceamzn-s3-demo-bucket--usw2-az1--x-s3
/original-file.txt
\ --source-if-match "\"a1b7c3d2e5f6
\""
이 명령은 다음 작업을 수행합니다.
amzn-s3-demo-bucket--usw2-az1--x-s3
디렉터리 버킷의 객체 이름을original-file.txt
에서new-file.txt
로 바꿉니다.소스 객체의 ETag가 '
a1b7c3d4e5f6
'과 일치하는 경우에만 이름 변경을 수행합니다.
ETag가 일치하지 않으면 412
Precondition Failed
오류와 함께 작업이 실패합니다.
다음 예시에서는 새로 지정된 객체 이름에 대한 조건부 검사를 통해 객체의 이름을 바꾸는 방법을 보여줍니다.
aws s3api rename-object \ --bucket
amzn-s3-demo-bucket--usw2-az1--x-s3
\ --keynew-file.txt
\ --rename-sourceamzn-s3-demo-bucket--usw2-az1--x-s3
/original-file.txt
\ --destination-if-none-match "\"e5f3g7h8i9j0
\""
이 명령은 다음 작업을 수행합니다.
amzn-s3-demo-bucket--usw2-az1--x-s3
디렉터리 버킷의 객체 이름을original-file.txt
에서new-file.txt
로 바꿉니다.객체가 존재하고 객체의 ETag가 '
e5f3g7h8i9j0
'과 일치하지 않는 경우에만 이름 바꾸기 작업을 수행합니다.
새 이름이 지정되어 있고 ETag가 일치하는 객체가 이미 있는 경우 412 Precondition Failed
오류와 함께 작업이 실패합니다.
객체 이름을 바꾸기 위해 REST 요청을 보낼 수 있습니다. 자세한 내용은 Amazon S3 API 참조의 RenameObject
섹션을 참조하세요.
1.19.0 버전부터 Mountpoint for Amazon S3는 S3 Express One Zone에서 객체 이름 바꾸기를 지원합니다. Mountpoint에 대한 자세한 내용은 Mountpoint 작업을 참조하세요.