객체 메타데이터 작업
Amazon S3에는 시스템 정의 메타데이터와 사용자 정의 메타데이터라는 두 가지 종류의 객체 메타데이터가 있습니다. 시스템 정의 메타데이터에는 객체의 생성 날짜, 크기 및 스토리지 클래스와 같은 메타데이터가 포함됩니다. 사용자 정의 메타데이터는 객체를 업로드할 때 설정할 수 있는 메타데이터입니다. 이 사용자 정의 메타데이터는 이름-값 페어의 집합입니다. 자세한 내용은 시스템 정의 객체 메타데이터 및 사용자 정의 객체 메타데이터(을)를 참조하세요.
객체를 만들 때 Amazon S3 버킷 내 객체를 고유하게 식별하는 객체 키(또는 키 이름)을 지정합니다. 자세한 내용은 Amazon S3 객체 이름 지정 섹션을 참조하세요. 또한 객체를 업로드할 때 Amazon S3에서 사용자 정의 메타데이터를 설정할 수 있습니다.
객체를 업로드한 후에는 이 사용자 정의 메타데이터를 수정할 수 없습니다. 이 메타데이터를 수정할 수 있는 유일한 방법은 객체 복사본을 만든 후 메타데이터를 설정하는 것입니다. Amazon S3 콘솔을 사용한 메타데이터 편집에 대한 자세한 내용은 Amazon S3 콘솔에서 객체 메타데이터 편집 섹션을 참조하세요.
S3 메타데이터를 사용하여 메타데이터 쿼리 및 데이터 검색 가속화
S3 객체에 대한 메타데이터를 쉽게 찾고 저장하고 쿼리하려면 S3 메타데이터를 사용할 수 있습니다. S3 메타데이터를 사용하면 비즈니스 분석, 콘텐츠 검색, 인공 지능 및 기계 학습(AI/ML) 모델 훈련 등에 사용할 데이터를 빠르게 준비할 수 있습니다.
S3 메타데이터는 범용 버킷의 객체에 대한 메타데이터를 자동으로 캡처하고, 쿼리할 수 있는 읽기 전용 완전관리형 Apache Iceberg 테이블에 저장하여 데이터 검색을 가속화합니다. 이러한 읽기 전용 테이블을 메타데이터 테이블이라고 합니다. 객체가 범용 버킷에 추가, 업데이트 및 제거되면 S3 메타데이터는 해당 메타데이터 테이블을 자동으로 새로 고쳐 최신 변경 사항을 반영합니다.
기본적으로 S3 메타데이터는 객체의 생성 시간 및 스토리지 클래스와 같은 시스템 정의 객체 메타데이터와 객체 업로드 중에 포함된 태그 및 사용자 정의 메타데이터와 같은 사용자 지정 메타데이터를 제공합니다. 또한 S3 메타데이터는 객체가 업데이트되거나 삭제되는 시기 및 요청을 수행한 AWS 계정과 같은 이벤트 메타데이터를 제공합니다.
메타데이터 테이블은 테이블 형식 데이터에 최적화된 스토리지를 제공하는 S3 테이블 버킷에 저장됩니다. 메타데이터를 쿼리하려면 테이블 버킷을 Amazon Athena, Amazon Redshift, Amazon QuickSight와 같은 AWS 분석 서비스와 통합하면 됩니다.
S3 메타데이터에 대한 자세한 정보는 S3 메타데이터를 사용하여 데이터 검색 가속화 섹션을 참조하세요.
시스템 정의 객체 메타데이터
버킷에 저장된 각 객체에 대해 Amazon S3는 시스템 메타데이터의 조합을 유지합니다. Amazon S3는 필요할 경우 이 시스템 메타데이터를 처리합니다. 예를 들어 Amazon S3는 객체 생성 날짜와 크기 메타데이터를 유지하며 객체 관리의 일환으로 이 정보를 사용합니다.
시스템 메타데이터에는 다음 2가지 카테고리가 있습니다.
-
시스템이 제어함 - 객체 생성 날짜와 같은 메타데이터는 시스템이 제어하므로 Amazon S3만 날짜 값을 수정할 수 있습니다.
-
사용자가 제어함 - 그 외, 객체에 대해 구성된 스토리지 클래스, 객체의 서버 측 암호화 사용 여부와 같은 시스템 메타데이터는 사용자가 값을 제어할 수 있는 시스템 메타데이터의 예입니다. 웹 사이트로 구성된 버킷의 경우 다른 페이지 또는 외부 URL 중 하나로 페이지 요청을 리디렉션해야 할 때가 있습니다. 이 경우 웹 페이지는 버킷의 객체가 됩니다. Amazon S3는 페이지 리디렉션 값을 시스템 메타데이터로 저장하며, 이것을 사용자가 제어합니다.
객체를 만들 때 이러한 시스템 메타데이터 항목의 값을 구성하고, 언제든지 필요할 때마다 값을 업데이트할 수 있습니다. 스토리지 클래스에 대한 자세한 정보는 Amazon S3 스토리지 클래스 이해 및 관리를 참조하십시오.
Amazon S3는 AWS KMS 키를 사용하여 Amazon S3 객체를 암호화합니다. AWS KMS는 객체 데이터만 암호화합니다. 체크섬과 지정된 알고리즘은 객체 메타데이터의 일부로 저장됩니다. 객체에 서버 측 암호화가 요청된 경우 체크섬은 암호화된 형식으로 저장됩니다. 서버 측 암호화에 대한 자세한 정보는 암호화로 데이터 보호 섹션을 참조하십시오.
참고
PUT
요청 헤더는 크기가 8KB 이하여야 합니다. PUT
요청 헤더에 포함되는 시스템 정의 메타데이터의 크기는 2KB 이하여야 합니다. 시스템 정의 메타데이터의 크기는 US-ASCII로 인코딩된 각 키와 값의 바이트 수를 더하여 측정됩니다.
다음 표에 시스템 정의 메타데이터의 목록과 사용자의 업데이트 여부가 정리되어 있습니다.
이름 | 설명 | 사용자의 값 수정 여부 |
---|---|---|
Date |
현재 날짜 및 시간. | 아니요 |
Cache-Control |
캐싱 정책을 지정하는 데 사용되는 일반 헤�� 필드입니다. | 예 |
Content-Disposition |
객체 표현 정보입니다. | 예 |
Content-Length |
객체 크기(바이트). | 아니요 |
Content-Type |
객체 유형입니다. | 예 |
Last-Modified |
객체 생성일 또는 최종 수정일 중 최근 날짜. 멀티파트 업로드의 경우 객체 생성 날짜는 멀티파트 업로드 시작 날짜입니다. |
아니요 |
ETag |
객체의 특정 버전을 나타내는 엔터티 태그(ETag). 멀티파트 업로드로 업로드되지 않고 암호화되지 않거나 Amazon S3 관리형 키(SSE-S3)를 사용하는 서버 측 암호화를 통해 암호화된 객체의 경우 ETag는 데이터의 MD5 다이제스트입니다. | 아니요 |
x-amz-server-side-encryption |
객체에 대한 서버 측 암호화 사용 여부 및 해당 암호화 유형이 AWS Key Management Service(AWS KMS) 키(SSE-KMS)와 Amazon S3 관리형 암호화 키(SSE-S3)중 무엇인지를 나타내는 헤더. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호 섹션을 참조하세요. | 예 |
x-amz-checksum-crc64nvme , x-amz-checksum-crc32 , x-amz-checksum-crc32c ,
x-amz-checksum-sha1 , x-amz-checksum-sha256 |
객체의 체크섬 또는 다이제스트를 포함하는 헤더. 대부분의 경우 Amazon S3에서 사용하도록 하는 체크섬 알고리즘에 따라 이러한 헤더 중 하나가 한 번에 설정됩니다. 체크섬 알고리즘 선택에 대한 자세한 내용은 Amazon S3에서 객체 무결성 확인 단원을 참조하십시오. | 아니요 |
x-amz-checksum-type |
멀티파트 객체에 대한 객체 수준 체크섬을 생성하기 위해 파트 수준 체크섬을 결합하는 방법을 결정하는 체크섬 유형입니다. | 예 |
x-amz-version-id |
객체 버전. 버전 관리를 사용하는 버킷의 경우 Amazon S3는 버킷에 추가된 객체에 버전 ID를 지정합니다. 자세한 내용은 S3 버전 관리로 여러 버전의 객체 유지 섹션을 참조하세요. | 아니요 |
x-amz-delete-marker |
객체가 삭제 마커인지를 나타내는 부울 마커. 이 마커는 버전 관리가 활성화된 버킷에서만 사용됩니다. | 아니요 |
x-amz-storage-class |
객체 저장에 사용된 스토리지 클래스. 자세한 내용은 Amazon S3 스토리지 클래스 이해 및 관리 섹션을 참조하세요. | 예 |
x-amz-website-redirect-location |
관련 객체에 대한 요청을 동일한 버킷의 다른 객체 또는 외부 URL로 리디렉션하는 헤더. 자세한 내용은 (선택 사항) 웹 페이지 리디렉션 구성 섹션을 참조하세요. | 예 |
x-amz-server-side-encryption-aws-kms-key-id |
객체를 암호화하는 데 사용된 AWS KMS 대칭 암호화 KMS 키의 ID를 나타내는 헤더. 이 헤더는 x-amz-server-side-encryption 헤더가 존재하고 값이 aws:kms 인 경우에만 사용됩니다. |
예 |
x-amz-server-side-encryption-customer-algorithm |
고객 제공 암호화 키(SSE-C)를 사용하는 서버 측 암호화가 활성화되었는지를 나타내는 헤더. 자세한 내용은 고객 제공 키(SSE-C)로 서버 측 암호화 사용 섹션을 참조하세요. | 예 |
x-amz-tagging |
객체에 대한 태그 집합입니다. 태그 집합은 URL 쿼리 매개 변수로 인코딩되어야 합니다. | 예 |
사용자 정의 객체 메타데이터
객체를 업로드할 때 객체에 메타데이터를 지정할 수 있습니다. 객체를 생성하기 위해 PUT
또는 POST
요청을 전송할 때 필요할 경우 이름-값(키-값)의 페어로 이 정보를 제공할 수 있습니다. REST API를 사용하여 객체를 업로드할 때 선택 사항으로 제공되는 사용자 정의 메타데이터의 이름은 다른 HTTP 헤더와 구분할 수 있도록 x-amz-meta-
로 시작해야 합니다. REST API를 사용하여 객체를 검색하면 이 접두사가 반환됩니다. SOAP API를 사용하여 객체를 업로드할 때는 접두사가 필요 없습니다. SOAP API를 사용하여 객체를 검색하면 객체 업로드 시 사용한 API에 관계없이 접두사가 제거됩니다.
참고
SOAP API는 신규 고객에게 제공되지 않으며 2025년 8월 31일에 서비스 종료(EOL)됩니다. REST API 또는 AWS SDK를 사용하는 것이 좋습니다.
REST API를 통해 메타데이터를 검색할 때 Amazon S3는 동일한 이름(대소문자 무시)을 가진 헤더를 쉼표로 구분되는 목록으로 결합합니다. 일부 메타데이터에 인쇄되지 않는 문자가 포함될 경우 반환되지 않습니다. 대신 인쇄할 수 없는 메타데이터 항목의 수를 나타내는 값과 함께 x-amz-missing-meta
헤더가 반환됩니다. HeadObject
작업은 객체 자체를 반환하지 않고 객체에서 메타데이터를 검색합니다. 이 작업은 객체의 메타데이터에만 관심이 있는 경우에 유용합니다. HEAD
를 사용하려면 객체에 대한 READ
액세스 권한이 있어야 합니다. 자세한 내용은 Amazon Simple Storage Service API Reference의 HeadObject를 참조하십시오.
사용자 정의 메타데이터는 키-값 페어의 집합입니다. Amazon S3는 사용자 정의 메타데이터 키를 소문자로 저장합니다.
Amazon S3는 메타데이터 값에 임의의 유니코드 문자를 허용합니다.
이러한 메타데이터 값 표시와 관련한 문제를 방지하려면 REST를 사용할 경우 US-ASCII 문자를 사용하고, SOAP를 사용하거나 POST
를 통해 브라우저 기반 업로드를 사용할 경우 UTF-8을 사용해야 합니다.
메타데이터 값에 US-ASCII 문자가 아닌 문자를 사용하는 경우, 제공된 유니코드 문자열에서 US-ASCII 문자가 아닌 문자가 있는지 검사합니다. 이러한 헤더의 값은 저장 및 인코딩하기 전에 RFC 2047
다음은 예입니다.
PUT /Key HTTP/1.1 Host:
amzn-s3-demo-bucket
.s3.amazonaws.com x-amz-meta-nonascii: ÄMÄZÕÑ S3 HEAD /Key HTTP/1.1 Host:amzn-s3-demo-bucket
.s3.amazonaws.com x-amz-meta-nonascii: =?UTF-8?B?w4PChE3Dg8KEWsODwpXDg8KRIFMz?= PUT /Key HTTP/1.1 Host:amzn-s3-demo-bucket
.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3 HEAD /Key HTTP/1.1 Host:amzn-s3-demo-bucket
.s3.amazonaws.com x-amz-meta-ascii: AMAZONS3
참고
PUT
요청 헤더는 크기가 8KB 이하여야 합니다. PUT
요청 헤더에 포함되는 사용자 정의 메타데이터의 크기는 2KB 이하여야 합니다. 사용자 정의 메타데이터의 크기는 UTF-8로 인코딩된 각 키와 값의 바이트 수를 더하여 계산합니다.
객체를 업로드한 이후에 객체의 복사본을 만들어서 수정하고 이전 객체를 교체하거나 새 버전을 만드는 방법으로 객체의 메타데이터를 변경하는 내용은 Amazon S3 콘솔에서 객체 메타데이터 편집 섹션을 참조하십시오.