조건부 읽기를 사용하여 메타데이터를 기반으로 객체를 검색하거나 복사하는 방법 - Amazon Simple Storage Service

조건부 읽기를 사용하여 메타데이터를 기반으로 객체를 검색하거나 복사하는 방법

조건부 읽기를 사용하면 읽기 요청에 헤더를 추가하여 S3 작업에 사전 조건을 추가할 수 있습니다. 이러한 사전 조건이 충족되지 않을 경우 읽기 요청이 실패합니다.

GET, HEAD 또는 COPY 요청에 대한 조건부 읽기를 사용하여 해당 메타데이터에 기반한 객체만 반환할 수 있습니다.

객체를 업로드하는 경우 Amazon S3는 S3만 수정할 수 있는 시스템 제어 메타데이터를 생성합니다. 엔터티 태그(ETag)와 Last-Modified를 시스템 제어 메타데이터의 예로 들 수 있습니다. 객체의 ETag는 객체의 특정 버전을 나타내는 문자열입니다. Last-Modified 날짜는 객체의 생성 날짜 또는 최종 수정 날짜 중 가장 최근 날짜를 나타내는 메타데이터입니다.

조건부 읽기를 사용하면 객체의 ETag 또는 최종 수정 날짜를 기준으로 객체를 반환할 수 있습니다. 요청에 ETag 값을 지정하고 ETag 값이 일치하는 경우에만 객체를 반환할 수 있습니다. 이렇게 하면 객체의 특정 버전만 반환하거나 복사할 수 있습니다. 읽기 요청에서 Last-Modified 값을 지정하고 입력한 날짜 이후에 해당 객체가 수정된 경우에만 객체를 반환할 수 있습니다.

지원되는 API

다음 S3 API는 조건부 읽기 사용을 지원합니다.

다음 헤더를 사용하여 엔터티 태그(ETag) 또는 마지막 수정 날짜에 따라 객체를 반환할 수 있습니다. ETag와 Last-Modified 등의 객체 메타데이터에 대한 자세한 내용은 시스템 정의 객체 메타데이터 섹션을 참조하세요.

GetObject

  • If-Match - ETag가 제공된 것과 일치하는 경우에만 객체를 반환합니다.

  • If-Modified-Since - 지정된 시간 이후에 수정된 경우에만 객체를 반환합니다.

  • If-None-Match - ETag가 제공된 것과 일치하지 않는 경우에만 객체를 반환합니다.

  • If-Unmodified-Since - 지정된 시간 이후에 수정되지 않은 경우에만 객체를 반환합니다.

이러한 헤더, 반환된 오류, S3가 단일 요청에서 여러 조건부 헤더를 처리하는 순서에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 GetObject 섹션을 참조하세요.

HeadObject

  • If-Match - ETag가 제공된 것과 일치하는 경우에만 객체를 반환합니다.

  • If-Modified-Since - 지정된 시간 이후에 수정된 경우에만 객체를 반환합니다.

  • If-None-Match - ETag가 제공된 것과 일치하지 않는 경우에만 객체를 반환합니다.

  • If-Unmodified-Since - 지정된 시간 이후에 수정되지 않은 경우에만 객체를 반환합니다.

이러한 헤더, 반환된 오류, S3가 단일 요청에서 여러 조건부 헤더를 처리하는 순서에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 HeadObject 섹션을 참조하세요.

CopyObject

  • x-amz-copy-source-if-match - ETag가 제공된 것과 일치하는 경우에만 소스 객체를 복사합니다.

  • x-amz-copy-source-if-modified-since - 지정된 시간 이후에 수정된 경우에만 소스 객체를 복사합니다.

  • x-amz-copy-source-if-none-match - ETag가 제공된 것과 일치하지 않는 경우에만 소스 객체를 복사합니다.

  • x-amz-copy-source-if-unmodified-since - 지정된 시간 이후에 수정되지 않은 경우에만 소스 객체를 복사합니다.

이러한 헤더, 반환된 오류, S3가 단일 요청에서 여러 조건부 헤더를 처리하는 순서에 대한 자세한 내용은 Amazon Simple Storage Service API 참조의 CopyObject 섹션을 참조하세요.