삭제 마커를 통한 작업 - Amazon Simple Storage Service

삭제 마커를 통한 작업

Amazon S3의 삭제 마커는 단순 DELETE 요청에 지정된 버전이 지정된 객체에 대한 자리 표시자(또는 마커)입니다. 단순 DELETE 요청은 버전 ID를 지정하지 않는 요청입니다. 객체가 버전 관리를 사용하는 버킷에 있기 때문에 이 객체는 삭제되지 않습니다. 그러나 삭제 마커를 사용하면 Amazon S3가 객체가 삭제된 것처럼 작동합니다. 삭제 마커에 Amazon S3 API DELETE 호출을 사용할 수 있습니다. 이렇게 하려면 적절한 권한이 있는 AWS Identity and Access Management (IAM) 사용자 또는 역할을 활용하여 DELETE 요청을 수행해야 합니다.

삭제 마커에는 다른 객체들과 마찬가지로 키 이름(또는 키)과 버전 ID가 있습니다. 그러나 삭제 마커는 다음과 같은 부분에서 다른 객체와는 다릅니다.

  • 삭제 마커에 연결된 데이터가 없습니다.

  • 삭제 마커는 액세스 제어 목록(ACL) 값과 연결되어 있지 않습니다.

  • 삭제 마커에 대한 GET 요청을 실행하면 삭제 마커에 데이터가 없기 때문에 GET 요청에서 아무 것도 검색하지 않습니다. 특히 GET 요청에 versionId가 지정되지 않은 경우 404(찾을 수 없음) 오류가 발생합니다.

삭제 마커는 Amazon S3의 스토리지에 대해 최소 요금을 발생시킵니다. 삭제 마커의 스토리지 크기는 삭제 마커의 키 이름 크기와 같습니다. 키 이름은 유니코드 문자열입니다. 키 이름에 대한 UTF-8 인코딩은 1~4바이트의 스토리지에서 이름의 각 문자별 버킷으로 추가됩니다. 삭제 마커는 S3 Standard 스토리지 클래스에 저장됩니다.

보유하고 있는 삭제 마커의 수와 마커가 어떤 스토리지 클래스에 저장되어 있는지 확인하려면 Amazon S3 Storage Lens를 사용하면 됩니다. 자세한 내용은 Amazon S3 스토리지 렌즈를 사용하여 스토리지 활동 및 사용량 평가Amazon S3 스토리지 렌즈 지표 용어집 단원을 참조하세요.

키 이름에 대한 자세한 내용은 객체 키 이름 생성 단원을 참조하십시오. 삭제 마커에 대한 자세한 내용은 삭제 마커 관리 섹션을 참조하세요.

Amazon S3에서만 삭제 마커를 생성할 수 있으며, 버전 관리가 사용 설정되었거나 일시 중지된 버킷의 객체에 대해 사용자가 DeleteObject 요청을 전송할 경우에만 삭제 마커를 생성합니다. DELETE 요청에 지정된 객체는 실제로 삭제되지 않습니다. 그 대신, 삭제 마커가 객체의 현재 버전이 됩니다. 객체의 키 이름(또는 키)은 삭제 마커의 키가 됩니다.

요청에 versionId를 지정하지 않고 객체를 가져올 때, 현재 버전이 삭제 마커인 경우 Amazon S3는 다음과 같이 응답합니다:

  • 404 (찾을 수 없음) 오류

  • 응답 헤더, x-amz-delete-marker: true

요청에 versionId를 지정하여 객체를 가져올 때, 지정된 버전이 삭제 마커인 경우 Amazon S3는 다음과 같이 응답합니다.

  • 405(메서드 허용 안 됨) 오류

  • 응답 헤더, x-amz-delete-marker: true

  • 응답 헤더, Last-Modified: timestamp(HeadObject 또는 GetObject API 작업을 사용하는 경우에만)

x-amz-delete-marker: true 응답 헤더는 액세스한 객체가 삭제 마커였음을 보고합니다. 값이 false이면 객체의 현재 버전 또는 지정된 버전이 삭제 마커가 아니므로 이 응답 헤더는 false를 반환하지 않습니다.

Last-Modified 응답 헤더는 삭제 마커의 생성 시간을 제공합니다.

다음 그림은 현재 버전이 삭제 마커인 객체에 대한 GetObject API 호출이 404(찾을 수 없음) 오류로 응답하고 응답 헤더에 x-amz-delete-marker: true가 포함된 경우를 보여 줍니다.


            404(찾을 수 없음) 오류를 반환하는 삭제 마커에 대한 GetObject 호출을 보여주는 그림.

요청에 versionId를 지정하여 객체에 대한 GetObject 호출을 수행하고 지정된 버전이 삭제 마커인 경우 Amazon S3는 405(메서드 허용 안 됨) 오류로 응답하고 응답 헤더에 x-amz-delete-marker: trueLast-Modified: timestamp를 포함합니다.


            요청에 삭제 마커의 버전 ID를 지정하면 405(메서드 허용 안 됨) 오류를 반환하는 삭제 마커 GetObject 호출을 보여주는 그림입니다.

삭제 마커 목록(객체의 다른 버전 포함)을 표시하는 유일한 방법은 versions 요청에 ListObjectVersions 하위 리소스를 사용하는 것입니다. 다음 그림은 ListObjectsV2 또는 ListObjects 요청이 현재 버전이 삭제 마커인 객체를 반환하지 않음을 보여줍니다.


            ListObjectsV2 또는 ListObjects 호출이 응답에서 삭제 마커를 반환하지 않는 방법을 보여주는 그림입니다.