3.4. S3 오브젝트 작업
개발자는 Ceph Object Gateway를 통해 Amazon S3 API(애플리케이션 프로그래밍 인터페이스)를 사용하여 오브젝트 작업을 수행할 수 있습니다.
다음 표에는 해당 기능의 지원 상태와 함께 오브젝트에 대한 Amazon S3 기능 작업이 나열되어 있습니다.
기능 | 상태 |
---|---|
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
지원됨 | |
Multi-Tenancy | 지원됨 |
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- RESTful 클라이언트입니다.
3.4.1. S3 버킷에서 오브젝트 가져오기
버킷에서 오브젝트를 검색합니다.
구문
GET /BUCKET/OBJECT HTTP/1.1
versionId
하위 리소스를 추가하여 특정 버전의 오브젝트를 검색합니다.
구문
GET /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
요청 헤더
partNumber
- 설명
-
읽을 개체의 일부입니다. 이렇게 하면 지정된 부분에 대해 범위가 지정된
GET
요청이 활성화됩니다. 이 요청을 사용하면 오브젝트의 일부만 다운로드하는 데 유용합니다. - 유효한 값
- 1에서 10,000 사이의 양의 정수입니다.
- 필수 항목
- 없음
범위
- 설명
검색할 오브젝트의 범위입니다.
참고GET 요청당 여러 데이터 범위가 지원되지 않습니다.
- 유효한 값
- Range:bytes=beginbyte-endbyte
- 필수 항목
- 없음
if-modified-since
- 설명
- 타임스탬프 이후 수정된 경우에만 가져옵니다.
- 유효한 값
- Timestamp
- 필수 항목
- 없음
if-unmodified-since
- 설명
- 타임스탬프 이후 수정되지 않은 경우에만 가져옵니다.
- 유효한 값
- Timestamp
- 필수 항목
- 없음
if-match
- 설명
- 오브젝트 ETag가 ETag와 일치하는 경우에만 가져옵니다.
- 유효한 값
- 엔터티 태그
- 필수 항목
- 없음
if-none-match
- 설명
- 개체 ETag가 ETag와 일치하지 않는 경우에만 가져옵니다.
- 유효한 값
- 엔터티 태그
- 필수 항목
- 없음
요청 헤더가 있는 Sytnax
GET /BUCKET/OBJECT?partNumber=PARTNUMBER&versionId=VersionId HTTP/1.1 Host: Bucket.s3.amazonaws.com If-Match: IfMatch If-Modified-Since: IfModifiedSince If-None-Match: IfNoneMatch If-Unmodified-Since: IfUnmodifiedSince Range: Range
응답 헤더
content-Range
- 설명
- 데이터 범위는 요청에 range 헤더 필드가 지정된 경우에만 반환됩니다.
x-amz-version-id
- 설명
- 버전 ID 또는 null을 반환합니다.
x-rgw-replicated-from
- 설명
-
Ceph 다중 영역 환경 내에서 오브젝트의 복제 경로와 관련된 중간 영역 및 모든 중간 영역을 반환합니다. 이 헤더는
GetObject
및HeadObject
응답에 포함됩니다.
x-rgw-replicated-at
- 설명
-
개체가 현재 위치에 복제된 시기를 나타내는 타임스탬프를 반환합니다.
마지막
헤더와 함께 이 헤더를 사용하여 복제를 완료할 기간을 계산할 수 있습니다.
현재 x-rgw-replicated-from
및 x-rgw-replicated-at
은 복제 영역의 s3cmd 또는 curl verify와 같은 클라이언트 툴에서 지원됩니다. 이러한 툴은 확인을 위해 radosgw-admin 명령 외에 사용할 수 있습니다. radosgw-admin
오브젝트 통계를 사용하면 BZ-2312552 헤더 키 x-rgw-replicated-from
의 알려진 문제가 있습니다.
3.4.2. S3 get object attributes
S3 GetObjectAttributes API를 사용하여 오브젝트의 데이터를 반환하지 않고 오브젝트의 메타데이터를 검색합니다. GetObjectAttributes API는 HeadObject 및 ListParts의 기능을 결합합니다. 이 두 호출에서 반환된 모든 정보를 단일 요청으로 제공하여 프로세스를 간소화하고 필요한 API 호출 수를 줄입니다.
구문
GET /BUCKET/OBJECT?attributes&versionId=VersionId
예
GET /testbucket/testobject?attributes&versionId=testversionid Host: Bucket.s3.amazonaws.com x-amz-max-parts: MaxParts x-amz-part-number-marker: PartNumberMarker x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm x-amz-server-side-encryption-customer-key: SSECustomerKey x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5 x-amz-request-payer: RequestPayer x-amz-expected-bucket-owner: ExpectedBucketOwner x-amz-object-attributes: ObjectAttributes
versionId
하위 리소스는 특정 버전의 오브젝트를 검색합니다.
3.4.2.1. 요청 엔티티
예
GET /{Key+}?attributes&versionId=VersionId HTTP/1.1 Host: Bucket.s3.amazonaws.com x-amz-max-parts: MaxParts x-amz-part-number-marker: PartNumberMarker x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm x-amz-server-side-encryption-customer-key: SSECustomerKey x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5 x-amz-request-payer: RequestPayer x-amz-expected-bucket-owner: ExpectedBucketOwner x-amz-object-attributes: ObjectAttributes
3.4.2.2. 요청 헤더 가져오기
이름 | 설명 | 유형 / 유효한 값 | 필수 여부 |
bucket | 오브젝트가 포함된 버킷의 이름입니다. | 문자열 | 제공됨 |
키 | 오브젝트 키입니다. | 문자열 | 제공됨 |
versionId | 특정 버전의 오브젝트를 참조하는 데 사용되는 버전 ID입니다. | 문자열 | 없음 |
x-amz-max-parts | 반환할 최대 부분 수를 설정합니다. | 문자열 | 없음 |
x-amz-object-attributes | 응답에서 반환하려는 루트 수준에서 필드를 지정합니다. 지정하지 않는 필드는 반환되지 않습니다. | ETag,Checksum,ObjectParts,StorageClass, ObjectSize | 제공됨 |
x-amz-part-number-marker | 목록을 시작한 후 부분을 지정합니다. 더 높은 부분 번호가 있는 부분만 나열됩니다. | 문자열 | 없음 |
3.4.2.3. 응답 엔티티
예
HTTP/1.1 200 x-amz-delete-marker: DeleteMarker Last-Modified: LastModified x-amz-version-id: VersionId x-amz-request-charged: RequestCharged <?xml version="1.0" encoding="UTF-8"?> <GetObjectAttributesOutput> <ETag>string</ETag> <Checksum> <ChecksumCRC32>string</ChecksumCRC32> <ChecksumCRC32C>string</ChecksumCRC32C> <ChecksumSHA1>string</ChecksumSHA1> <ChecksumSHA256>string</ChecksumSHA256> </Checksum> <ObjectParts> <IsTruncated>boolean</IsTruncated> <MaxParts>integer</MaxParts> <NextPartNumberMarker>integer</NextPartNumberMarker> <PartNumberMarker>integer</PartNumberMarker> <Part> <ChecksumCRC32>string</ChecksumCRC32> <ChecksumCRC32C>string</ChecksumCRC32C> <ChecksumSHA1>string</ChecksumSHA1> <ChecksumSHA256>string</ChecksumSHA256> <PartNumber>integer</PartNumber> <Size>long</Size> </Part> ... <PartsCount>integer</PartsCount> </ObjectParts> <StorageClass>string</StorageClass> <ObjectSize>long</ObjectSize> </GetObjectAttributesOutput>
3.4.2.4. 응답 헤더 가져오기
이름 | 설명 |
마지막 수정됨 | 오브젝트 생성 날짜입니다. |
x-amz-delete-marker | 검색된 개체가 삭제 마커인지(false)인지 여부를 지정합니다. false인 경우 이 응답 헤더가 응답에 표시되지 않습니다. |
x-amz-request-charged | 존재하는 경우 요청자가 요청에 대해 성공적으로 청구되었음을 나타냅니다. |
x-amz-version-id | 오브젝트의 버전 ID입니다. |
GetObjectAttributesOutput | GetObjectAttributesOutput 매개변수에 대한 TRoot 수준 태그입니다. |
checksum |
오브젝트의 체크섬 또는 다이제스트입니다. ChecksumCRC32 오브젝트의 base64로 인코딩된 32비트 CRC-32C 체크섬입니다. 이는 오브젝트로 업로드된 경우에만 표시됩니다. multipart 업로드를 사용하여 업로드된 오브젝트에 API 작업을 사용하는 경우 이 값은 전체 오브젝트의 직접 체크섬 값이 아닐 수 있습니다. 대신 각 개별 부분의 체크섬 값에 따른 계산입니다. 다중 파트 업로드로 체크섬을 계산하는 방법에 대한 자세한 내용은 Amazon S3 사용자 가이드의 오브젝트 무결성 확인을 참조하십시오.
ChecksumSHA1 오브젝트의 base64로 인코딩된 160비트 SHA-1 다이제스트입니다. 이는 오브젝트로 업로드된 경우에만 표시됩니다. multipart 업로드를 사용하여 업로드된 오브젝트에서 API 작업을 사용하는 경우 이 값은 전체 오브젝트의 직접 체크섬 값이 아닐 수 있습니다. 대신 각 개별 부분의 체크섬 값에 따른 계산입니다. 다중 파트 업로드로 체크섬을 계산하는 방법에 대한 자세한 내용은 Amazon S3 사용자 가이드의 오브젝트 무결성 확인을 참조하십시오.
ChecksumSHA256 오브젝트의 base64로 인코딩된 256비트 SHA-256 다이제스트입니다. 이는 오브젝트로 업로드된 경우에만 표시됩니다. multipart 업로드를 사용하여 업로드된 오브젝트에 API 작업을 사용하는 경우 이 값은 전체 오브젝트의 직접 체크섬 값이 아닐 수 있습니다. 대신 각 개별 부분의 체크섬 값에 따른 계산입니다. 다중 파트 업로드로 체크섬을 계산하는 방법에 대한 자세한 내용은 Amazon S3 사용자 가이드의 오브젝트 무결성 확인을 참조하십시오. |
ObjectParts |
다중 파트 업로드와 관련된 부분을 수집합니다.A collection of parts associated with a multipart upload. ObjectParts 다중 파트 업로드와 관련된 부분 컬렉션입니다.
TotalPartsCount 총 부분 수입니다.
PartNumber Marker 현재 부분에 대한 마커입니다.
NextPartNumberMarker 목록이 잘리면 이 요소는 목록의 마지막 부분과 후속 요청에서 PartNumberMarker 요청 매개변수에 사용할 값을 지정합니다.
maxParts 응답에 허용되는 최대 부분 수입니다.
IsTruncated 반환된 부분 목록이 잘린지 여부를 나타냅니다. true 값은 목록이 잘린 것을 나타냅니다. 부분 수가 MaxParts 요소에서 반환되는 제한을 초과하면 목록을 잘릴 수 있습니다.
parts 특정 부분과 관련된 요소의 컨테이너입니다. 응답에는 0개 이상의 Parts 요소가 포함될 수 있습니다. 참고 일반 용도 버킷 - GetObjectAttributes의 경우 추가 체크섬(x-amz-checksum-crc32 , x-amz-checksum-crc32c , x-amz-checksum-sha1 또는 x-amz-checksum-sha256 )이 요청에 지정된 오브젝트에 적용되지 않습니다. 디렉터리 버킷 - GetObjectAttributes의 경우 요청에 지정된 개체에 추가 체크섬이 적용되었는지 여부에 관계없이 응답이 part를 반환합니다. (structure) 개별 부분과 관련된 요소의 컨테이너입니다.
partnumber 부분을 식별하는 부분 번호입니다. 이 값은 1에서 10,000 사이의 양의 정수입니다.
크기 업로드된 부분의 크기(바이트)입니다.
ChecksumCRC32 이 헤더를 데이터 무결성 검사로 사용하여 수신된 데이터가 원래 전송된 데이터와 동일한지 확인할 수 있습니다. 이 헤더는 오브젝트의 base64로 인코딩된 32비트 CRC-32 체크섬을 지정합니다. 자세한 내용은 Amazon S3 사용자 가이드에서 오브젝트 무결성 검사를 참조하십시오.
ChecksumCRC32C 오브젝트의 base64로 인코딩된 32비트 CRC-32C 체크섬입니다. 이는 오브젝트로 업로드된 경우에만 표시됩니다. multipart 업로드를 사용하여 업로드된 오브젝트에 API 작업을 사용하는 경우 이 값은 전체 오브젝트의 직접 체크섬 값이 아닐 수 있습니다. 대신 각 개별 부분의 체크섬 값에 따른 계산입니다. 다중 파트 업로드로 체크섬을 계산하는 방법에 대한 자세한 내용은 Amazon S3 사용자 가이드의 오브젝트 무결성 확인을 참조하십시오.
ChecksumSHA1 오브젝트의 base64로 인코딩된 160비트 SHA-1 다이제스트입니다. 이는 오브젝트로 업로드된 경우에만 표시됩니다. multipart 업로드를 사용하여 업로드된 오브젝트에서 API 작업을 사용하는 경우 이 값은 전체 오브젝트의 직접 체크섬 값이 아닐 수 있습니다. 대신 각 개별 부분의 체크섬 값에 따른 계산입니다. 다중 파트 업로드로 체크섬을 계산하는 방법에 대한 자세한 내용은 Amazon S3 사용자 가이드의 오브젝트 무결성 확인을 참조하십시오.
ChecksumSHA256 오브젝트의 base64로 인코딩된 256비트 SHA-256 다이제스트입니다. 이는 오브젝트로 업로드된 경우에만 표시됩니다. multipart 업로드를 사용하여 업로드된 오브젝트에 API 작업을 사용하는 경우 이 값은 전체 오브젝트의 직접 체크섬 값이 아닐 수 있습니다. 대신 각 개별 부분의 체크섬 값에 따른 계산입니다. 다중 파트 업로드로 체크섬을 계산하는 방법에 대한 자세한 내용은 Amazon S3 사용자 가이드의 오브젝트 무결성 확인을 참조하십시오. |
ObjectSize | 오브젝트의 크기(바이트)입니다. |
StorageClass | 오브젝트의 스토리지 클래스 정보를 제공합니다. Amazon S3는 S3 Standard 스토리지 클래스 오브젝트를 제외한 모든 오브젝트에 대한 이 헤더를 반환합니다. |
3.4.3. 오브젝트의 동기화 복제 헤더 검색
개체에 대한 정보를 반환합니다. 이 요청은 Get Object 요청과 동일한 헤더 정보를 반환하지만 오브젝트 데이터 페이로드가 아닌 메타데이터만 포함합니다.
현재 오브젝트 버전을 검색합니다.
구문
HEAD /BUCKET/OBJECT HTTP/1.1
versionId
하위 리소스를 추가하여 특정 버전에 대한 정보를 검색합니다.
구문
HEAD /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
요청 헤더
범위
- 설명
- 검색할 오브젝트의 범위입니다.
- 유효한 값
- Range:bytes=beginbyte-endbyte
- 필수 항목
- 없음
if-modified-since
- 설명
- 타임스탬프 이후 수정된 경우에만 가져옵니다.
- 유효한 값
- Timestamp
- 필수 항목
- 없음
if-match
- 설명
- 오브젝트 ETag가 ETag와 일치하는 경우에만 가져옵니다.
- 유효한 값
- 엔터티 태그
- 필수 항목
- 없음
if-none-match
- 설명
- 오브젝트 ETag가 ETag와 일치하는 경우에만 가져옵니다.
- 유효한 값
- 엔터티 태그
- 필수 항목
- 없음
응답 헤더
x-amz-version-id
- 설명
- 버전 ID 또는 null을 반환합니다.
x-rgw-replicated-from
- 설명
-
Ceph 다중 영역 환경 내에서 오브젝트의 복제 경로와 관련된 중간 영역 및 모든 중간 영역을 반환합니다. 이 헤더는
GetObject
및HeadObject
응답에 포함됩니다.
x-rgw-replicated-at
- 설명
-
개체가 현재 위치에 복제된 시기를 나타내는 타임스탬프를 반환합니다.
마지막
헤더와 함께 이 헤더를 사용하여 복제를 완료할 기간을 계산할 수 있습니다.
현재 x-rgw-replicated-from
및 x-rgw-replicated-at
은 복제 영역의 s3cmd 또는 curl verify와 같은 클라이언트 툴에서 지원됩니다. 이러한 툴은 확인을 위해 radosgw-admin 명령 외에 사용할 수 있습니다. radosgw-admin
오브젝트 통계를 사용하면 BZ-2312552 헤더 키 x-rgw-replicated-from
의 알려진 문제가 있습니다.
3.4.4. S3 put object lock
put 오브젝트 잠금 API는 선택한 버킷에 잠금 구성을 배치합니다. 오브젝트 잠금을 사용하면 WORM(Write-Once-Read-Many) 모델을 사용하여 오브젝트를 저장할 수 있습니다. 개체 잠금을 사용하면 고정된 시간 또는 무기한으로 오브젝트를 삭제하거나 덮어쓰지 않도록 합니다. 오브젝트 잠금 구성에 지정된 규칙은 선택한 버킷에 배치된 모든 새 오브젝트에 기본적으로 적용됩니다.
버킷을 생성할 때 오브젝트 잠금을 활성화합니다. 그렇지 않으면 작업이 실패합니다.
구문
PUT /BUCKET?object-lock HTTP/1.1
예
PUT /testbucket?object-lock HTTP/1.1
요청 엔터티
ObjectLockConfiguration
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
ObjectLockEnabled
- 설명
- 이 버킷에 오브젝트 잠금 구성이 활성화되어 있는지 여부를 나타냅니다.
- 유형
- 문자열
- 필수 항목
- 제공됨
Rule
- 설명
- 지정된 버킷에 대한 오브젝트 잠금 규칙입니다.
- 유형
- 컨테이너
- 필수 항목
- 없음
DefaultRetention
- 설명
- 지정된 버킷에 배치된 새 오브젝트에 적용되는 기본 보존 기간입니다.
- 유형
- 컨테이너
- 필수 항목
- 없음
모드
- 설명
- 기본 오브젝트 잠금 보존 모드입니다. 유효한 값: GOVERNANCE/COMPLIANCE.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
일
- 설명
- 기본 보존 기간에 지정된 일 수입니다.
- 유형
- 정수
- 필수 항목
- 없음
년
- 설명
- 기본 보존 기간에 지정된 연도 수입니다.
- 유형
- 정수
- 필수 항목
- 없음
HTTP 응답
400
- 상태 코드
-
MalformedXML
- 설명
- XML이 제대로 구성되어 있지 않습니다.
409
- 상태 코드
-
InvalidBucketState
- 설명
- 버킷 오브젝트 잠금이 활성화되지 않습니다.
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.5. S3 개체 잠금 가져오기
get 오브젝트 잠금 API는 버킷에 대한 잠금 구성을 검색합니다.
구문
GET /BUCKET?object-lock HTTP/1.1
예
GET /testbucket?object-lock HTTP/1.1
응답 엔터티
ObjectLockConfiguration
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
ObjectLockEnabled
- 설명
- 이 버킷에 오브젝트 잠금 구성이 활성화되어 있는지 여부를 나타냅니다.
- 유형
- 문자열
- 필수 항목
- 제공됨
Rule
- 설명
- 지정된 버킷에 대한 오브젝트 잠금 규칙이 있습니다.
- 유형
- 컨테이너
- 필수 항목
- 없음
DefaultRetention
- 설명
- 지정된 버킷에 배치된 새 오브젝트에 적용되는 기본 보존 기간입니다.
- 유형
- 컨테이너
- 필수 항목
- 없음
모드
- 설명
- 기본 오브젝트 잠금 보존 모드입니다. 유효한 값: GOVERNANCE/COMPLIANCE.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
일
- 설명
- 기본 보존 기간에 지정된 일 수입니다.
- 유형
- 정수
- 필수 항목
- 없음
년
- 설명
- 기본 보존 기간에 지정된 연도 수입니다.
- 유형
- 정수
- 필수 항목
- 없음
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.6. S3 put object legal hold
put 오브젝트 legal hold API는 선택한 오브젝트에 법적 보류 구성을 적용합니다. 적법한 유지를 사용하면 오브젝트 버전을 덮어쓰거나 삭제할 수 없습니다. 법적 유지에는 관련 보존 기간이 없으며 명시적으로 삭제할 때까지 유지됩니다.
구문
PUT /BUCKET/OBJECT?legal-hold&versionId= HTTP/1.1
예
PUT /testbucket/testobject?legal-hold&versionId= HTTP/1.1
versionId
하위 리소스는 특정 버전의 오브젝트를 검색합니다.
요청 엔터티
LegalHold
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
상태
- 설명
- 지정된 개체에 법적 유지가 있는지 여부를 나타냅니다.Indicates whether the specified object has a legal hold in place. 유효한 값: ON/OFF
- 유형
- 문자열
- 필수 항목
- 제공됨
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.7. S3 get object legal hold
get 오브젝트 legal hold API는 오브젝트의 현재 법적 보류 상태를 검색합니다.
구문
GET /BUCKET/OBJECT?legal-hold&versionId= HTTP/1.1
예
GET /testbucket/testobject?legal-hold&versionId= HTTP/1.1
versionId
하위 리소스는 특정 버전의 오브젝트를 검색합니다.
응답 엔터티
LegalHold
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
상태
- 설명
- 지정된 개체에 법적 유지가 있는지 여부를 나타냅니다.Indicates whether the specified object has a legal hold in place. 유효한 값: ON/OFF
- 유형
- 문자열
- 필수 항목
- 제공됨
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.8. S3 put 오브젝트 보존
put 오브젝트 보존 API는 오브젝트에 오브젝트 보존 구성을 배치합니다. 보존 기간은 고정된 시간 동안 오브젝트 버전을 보호합니다. 두 가지 모드가 있습니다: GOVERNANCE 및 COMPLIANCE. 이 두 가지 보존 모드는 오브젝트에 서로 다른 수준의 보호를 적용합니다.
이 기간 동안 오브젝트는 WORM으로 보호되는 Write-Once-Read-Many-protected (WORM-protected)이며 덮어쓰거나 삭제할 수 없습니다.
구문
PUT /BUCKET/OBJECT?retention&versionId= HTTP/1.1
예
PUT /testbucket/testobject?retention&versionId= HTTP/1.1
versionId
하위 리소스는 특정 버전의 오브젝트를 검색합니다.
요청 엔터티
보존
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
모드
- 설명
- 지정된 오브젝트의 보존 모드입니다. 유효한 값: GOVERNANCE, COMPLIANCE.
- 유형
- 문자열
- 필수 항목
- 제공됨
RetainUntilDate
- 설명
- 보존 날짜.
- 형식
- 2020-01-05T00:00:00.000Z
- 유형
- Timestamp
- 필수 항목
- 제공됨
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.9. S3 가져오기 오브젝트 보존
get 오브젝트 보존 API는 오브젝트의 오브젝트 보존 구성을 검색합니다.
구문
GET /BUCKET/OBJECT?retention&versionId= HTTP/1.1
예
GET /testbucket/testobject?retention&versionId= HTTP/1.1
versionId
하위 리소스는 특정 버전의 오브젝트를 검색합니다.
응답 엔터티
보존
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
모드
- 설명
- 지정된 오브젝트의 보존 모드입니다. 유효한 값: GOVERNANCE/COMPLIANCE
- 유형
- 문자열
- 필수 항목
- 제공됨
RetainUntilDate
- 설명
- 보존 날짜. Format: 2020-01-05T00:00:00.000Z
- 유형
- Timestamp
- 필수 항목
- 제공됨
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.10. S3 put object tagging
put 오브젝트 태그 지정 API는 태그를 오브젝트와 연결합니다. 태그는 키-값 쌍입니다. 다른 버전의 태그를 배치하려면 versionId
쿼리 매개변수를 사용합니다. s3:PutObjectTagging
작업을 수행할 수 있는 권한이 있어야 합니다. 기본적으로 버킷 소유자는 이 권한이 있으며 다른 사용자에게 이 권한을 부여할 수 있습니다.
구문
PUT /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
예
PUT /testbucket/testobject?tagging&versionId= HTTP/1.1
요청 엔터티
태그 지정
- 설명
- 요청에 대한 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
TagSet
- 설명
- 태그 집합의 컬렉션입니다.
- 유형
- 문자열
- 필수 항목
- 제공됨
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.11. S3 오브젝트 태그 지정
get 오브젝트 태그 지정 API는 오브젝트의 태그를 반환합니다. 기본적으로 GET
작업은 현재 오브젝트 버전에 대한 정보를 반환합니다.
버전이 지정된 버킷의 경우 버킷에 여러 버전의 오브젝트를 보유할 수 있습니다. 다른 버전의 태그를 검색하려면 요청에 versionId
쿼리 매개변수를 추가합니다.
구문
GET /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
예제
GET /testbucket/testobject?tagging&versionId= HTTP/1.1
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.12. S3 오브젝트 태그 삭제
delete 오브젝트 태그 지정 API는 지정된 오브젝트에서 전체 태그 세트를 제거합니다. 이 작업을 사용하려면 s3:DeleteObjectTagging
작업을 수행할 수 있는 권한이 있어야 합니다.
특정 오브젝트 버전의 태그를 삭제하려면 요청에 versionId
쿼리 매개변수를 추가합니다.
구문
DELETE /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
예제
DELETE /testbucket/testobject?tagging&versionId= HTTP/1.1
추가 리소스
- 이 API 호출에 대한 자세한 내용은 S3 API 를 참조하십시오.
3.4.13. S3 버킷에 오브젝트 추가
버킷에 오브젝트를 추가합니다. 이 작업을 수행하려면 버킷에 대한 쓰기 권한이 있어야 합니다.
구문
PUT /BUCKET/OBJECT HTTP/1.1
요청 헤더
content-md5
- 설명
- 메시지의 base64로 인코딩된 MD-5 해시입니다.
- 유효한 값
- 문자열입니다. 기본값 또는 제약 조건이 없습니다.
- 필수 항목
- 없음
content-type
- 설명
- 표준 MIME 유형입니다.
- 유효한 값
-
모든 MIME 유형. 기본값:
binary/octet-stream
. - 필수 항목
- 없음
x-amz-meta-<…>*
- 설명
- 사용자 메타데이터. 오브젝트로 저장됩니다.
- 유효한 값
- 최대 8kb의 문자열입니다. 기본값이 없습니다.
- 필수 항목
- 없음
x-amz-acl
- 설명
- 사용할 수 있는 ACL입니다.
- 유효한 값
-
private
,public-read
,public-read-write
,authenticated-read
- 필수 항목
- 없음
응답 헤더
x-amz-version-id
- 설명
- 버전 ID 또는 null을 반환합니다.
3.4.14. S3 오브젝트 삭제
개체를 제거합니다. 포함된 버킷에 WRITE 권한이 설정되어 있어야 합니다.
오브젝트를 삭제합니다. 오브젝트 버전 지정이 있는 경우 마커를 생성합니다.
구문
DELETE /BUCKET/OBJECT HTTP/1.1
버전 관리가 있을 때 오브젝트를 삭제하려면 versionId
하위 리소스와 삭제할 오브젝트 버전을 지정해야 합니다.
DELETE /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
3.4.15. S3 여러 오브젝트 삭제
이 API 호출은 버킷에서 여러 오브젝트를 삭제합니다.
구문
POST /BUCKET/OBJECT?delete HTTP/1.1
3.4.16. S3 오브젝트의 ACL(액세스 제어 목록) 가져오기
현재 오브젝트 버전에 대한 ACL을 반환합니다.
구문
GET /BUCKET/OBJECT?acl HTTP/1.1
versionId
하위 리소스를 추가하여 특정 버전에 대한 ACL을 검색합니다.
구문
GET /BUCKET/OBJECT?versionId=VERSION_ID&acl HTTP/1.1
응답 헤더
x-amz-version-id
- 설명
- 버전 ID 또는 null을 반환합니다.
응답 엔터티
AccessControlPolicy
- 설명
- 응답을 위한 컨테이너입니다.
- 유형
- 컨테이너
AccessControlList
- 설명
- ACL 정보에 대한 컨테이너입니다.
- 유형
- 컨테이너
소유자
- 설명
-
버킷 소유자
ID
및DisplayName
의 컨테이너입니다. - 유형
- 컨테이너
ID
- 설명
- 버킷 소유자의 ID입니다.
- 유형
- 문자열
DisplayName
- 설명
- 버킷 소유자의 표시 이름입니다.
- 유형
- 문자열
부여
- 설명
-
Grantee
및Permission
에 대한 컨테이너입니다. - 유형
- 컨테이너
부여자
- 설명
-
권한 부여를 수신하는 사용자의
DisplayName
및ID
에 대한 컨테이너입니다. - 유형
- 컨테이너
권한
- 설명
-
Grantee
버킷에 부여된 권한입니다. - 유형
- 문자열
3.4.17. S3 오브젝트의 ACL(액세스 제어 목록) 설정
현재 오브젝트 버전에 대한 오브젝트 ACL을 설정합니다.
구문
PUT /BUCKET/OBJECT?acl
요청 엔터티
AccessControlPolicy
- 설명
- 응답을 위한 컨테이너입니다.
- 유형
- 컨테이너
AccessControlList
- 설명
- ACL 정보에 대한 컨테이너입니다.
- 유형
- 컨테이너
소유자
- 설명
-
버킷 소유자
ID
및DisplayName
의 컨테이너입니다. - 유형
- 컨테이너
ID
- 설명
- 버킷 소유자의 ID입니다.
- 유형
- 문자열
DisplayName
- 설명
- 버킷 소유자의 표시 이름입니다.
- 유형
- 문자열
부여
- 설명
-
Grantee
및Permission
에 대한 컨테이너입니다. - 유형
- 컨테이너
부여자
- 설명
-
권한 부여를 수신하는 사용자의
DisplayName
및ID
에 대한 컨테이너입니다. - 유형
- 컨테이너
권한
- 설명
-
Grantee
버킷에 부여된 권한입니다. - 유형
- 문자열
3.4.18. S3 오브젝트 복사
오브젝트를 복사하려면 PUT
을 사용하고 대상 버킷과 오브젝트 이름을 지정합니다.
구문
PUT /DEST_BUCKET/DEST_OBJECT HTTP/1.1 x-amz-copy-source: SOURCE_BUCKET/SOURCE_OBJECT
요청 헤더
x-amz-copy-source
- 설명
- 소스 버킷 이름 + 오브젝트 이름입니다.
- 유효한 값
-
버킷 /오브젝트
- 필수 항목
- 제공됨
x-amz-acl
- 설명
- 사용할 수 있는 ACL입니다.
- 유효한 값
-
private
,public-read
,public-read-write
,authenticated-read
- 필수 항목
- 없음
x-amz-copy-if-modified-since
- 설명
- 타임스탬프 이후 수정된 경우에만 복사합니다.
- 유효한 값
- Timestamp
- 필수 항목
- 없음
x-amz-copy-if-unmodified-since
- 설명
- 타임스탬프 이후 수정되지 않은 경우에만 복사합니다.
- 유효한 값
- Timestamp
- 필수 항목
- 없음
x-amz-copy-if-match
- 설명
- 개체 ETag가 ETag와 일치하는 경우에만 복사합니다.
- 유효한 값
- 엔터티 태그
- 필수 항목
- 없음
x-amz-copy-if-none-match
- 설명
- 개체 ETag가 ETag와 일치하는 경우에만 복사합니다.
- 유효한 값
- 엔터티 태그
- 필수 항목
- 없음
응답 엔터티
CopyObjectResult
- 설명
- 응답 요소에 대한 컨테이너입니다.
- 유형
- 컨테이너
LastModified
- 설명
- 소스 오브젝트의 마지막 수정된 날짜입니다.
- 유형
- 날짜
etag
- 설명
- 새 오브젝트의 ETag입니다.
- 유형
- 문자열
3.4.19. S3 HTML 양식을 사용하여 버킷에 오브젝트 추가
HTML 양식을 사용하여 버킷에 오브젝트를 추가합니다. 이 작업을 수행하려면 버킷에 대한 쓰기 권한이 있어야 합니다.
구문
POST /BUCKET/OBJECT HTTP/1.1
3.4.20. S3 요청 옵션 결정
실제 요청이 특정 origin, HTTP 메서드 및 헤더로 보낼 수 있는지 여부를 결정하는 preflight 요청입니다.
구문
OPTIONS /OBJECT HTTP/1.1
3.4.21. S3 다중 파트 업로드 시작
다중 부분 업로드 프로세스를 시작합니다. UploadId
를 반환하며, 추가 부분을 추가하고, 부분을 나열하고, 다중 파트 업로드를 완료 또는 중단할 때 지정할 수 있습니다.
구문
POST /BUCKET/OBJECT?uploads
요청 헤더
content-md5
- 설명
- 메시지의 base64로 인코딩된 MD-5 해시입니다.
- 유효한 값
- 문자열입니다. 기본값 또는 제약 조건이 없습니다.
- 필수 항목
- 없음
content-type
- 설명
- 표준 MIME 유형입니다.
- 유효한 값
-
모든 MIME 유형. 기본값:
binary/octet-stream
- 필수 항목
- 없음
x-amz-meta-<…>
- 설명
- 사용자 메타데이터. 오브젝트로 저장됩니다.
- 유효한 값
- 최대 8kb의 문자열입니다. 기본값이 없습니다.
- 필수 항목
- 없음
x-amz-acl
- 설명
- 사용할 수 있는 ACL입니다.
- 유효한 값
-
private
,public-read
,public-read-write
,authenticated-read
- 필수 항목
- 없음
응답 엔터티
InitiatedMultipartUploadsResult
- 설명
- 결과를 위한 컨테이너입니다.
- 유형
- 컨테이너
bucket
- 설명
- 오브젝트 콘텐츠를 수신할 버킷입니다.
- 유형
- 문자열
키
- 설명
-
키 요청 매개변수(있는 경우)에서 지정하는
키
입니다. - 유형
- 문자열
UploadId
- 설명
-
있는 경우 multipart 업로드를 식별하는
upload-id
요청 매개변수로 지정된 ID입니다. - 유형
- 문자열
3.4.22. S3 다중 업로드에 부분 추가
다중 파트 업로드에 부분을 추가합니다.
uploadId
하위 리소스와 업로드 ID를 지정하여 다중 파트 업로드에 부분을 추가합니다.
구문
PUT /BUCKET/OBJECT?partNumber=&uploadId=UPLOAD_ID HTTP/1.1
다음 HTTP 응답이 반환될 수 있습니다.
HTTP 응답
404
- 상태 코드
-
NoSuchUpload
- 설명
- 지정된 upload-id가 이 오브젝트에 시작된 업로드와 일치하지 않습니다.
3.4.23. S3 다중 파트 업로드 부분 나열
uploadId
하위 리소스 및 업로드 ID를 지정하여 다중 파트 업로드 부분을 나열합니다.
구문
GET /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
응답 엔터티
InitiatedMultipartUploadsResult
- 설명
- 결과를 위한 컨테이너입니다.
- 유형
- 컨테이너
bucket
- 설명
- 오브젝트 콘텐츠를 수신할 버킷입니다.
- 유형
- 문자열
키
- 설명
-
키 요청 매개변수(있는 경우)에서 지정하는
키
입니다. - 유형
- 문자열
UploadId
- 설명
-
있는 경우 multipart 업로드를 식별하는
upload-id
요청 매개변수로 지정된 ID입니다. - 유형
- 문자열
이니시에이터
- 설명
-
업로드를 시작한 사용자의
ID
및DisplayName
을 포함합니다. - 유형
- 컨테이너
ID
- 설명
- 이니시에이터의 ID입니다.
- 유형
- 문자열
DisplayName
- 설명
- 이니시에이터의 표시 이름입니다.
- 유형
- 문자열
소유자
- 설명
-
업로드된 오브젝트를 소유한 사용자의
ID
및DisplayName
에 대한 컨테이너입니다. - 유형
- 컨테이너
StorageClass
- 설명
-
결과 오브젝트를 저장하는 데 사용되는 메서드입니다.
STANDARD
또는REDUCED_REDUNDANCY
- 유형
- 문자열
PartNumberMarker
- 설명
-
IsTruncated
가true
인 경우 후속 요청에 사용할 부분 마커입니다. 목록 앞에 추가합니다. - 유형
- 문자열
NextPartNumberMarker
- 설명
-
IsTruncated
가true
인 경우 후속 요청에 사용할 다음 부분 마커입니다. 목록의 끝입니다. - 유형
- 문자열
IsTruncated
- 설명
-
true
인 경우 오브젝트 업로드 콘텐츠의 하위 집합만 반환되었습니다. - 유형
- 부울
부분
- 설명
-
키
,Part
,InitiatorOwner
,StorageClass
및Initiated
요소에 대한 컨테이너입니다. - 유형
- 컨테이너
PartNumber
- 설명
-
키
,Part
,InitiatorOwner
,StorageClass
및Initiated
요소에 대한 컨테이너입니다. - 유형
- 정수
ETag
- 설명
- 해당 부분의 엔터티 태그입니다.
- 유형
- 문자열
크기
- 설명
- 업로드된 부분의 크기입니다.
- 유형
- 정수
3.4.24. S3 업로드된 부분 수집
어셈블은 업로드된 부분을 업로드하고 새 오브젝트를 생성하여 다중 파트 업로드를 완료합니다.
uploadId
하위 리소스 및 업로드 ID를 지정하여 다중 파트 업로드를 완료합니다.
구문
POST /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
요청 엔터티
CompleteMultipartUpload
- 설명
- 하나 이상의 부분으로 구성된 컨테이너입니다.
- 유형
- 컨테이너
- 필수 항목
- 제공됨
부분
- 설명
-
PartNumber
및ETag
용 컨테이너입니다. - 유형
- 컨테이너
- 필수 항목
- 제공됨
PartNumber
- 설명
- 부분의 식별자입니다.
- 유형
- 정수
- 필수 항목
- 제공됨
ETag
- 설명
- 해당 부분의 엔터티 태그입니다.
- 유형
- 문자열
- 필수 항목
- 제공됨
응답 엔터티
CompleteMultipartUploadResult
- 설명
- 응답을 위한 컨테이너입니다.
- 유형
- 컨테이너
위치
- 설명
- 새 오브젝트의 리소스 식별자(path)입니다.
- 유형
- URI
bucket
- 설명
- 새 오브젝트가 포함된 버킷의 이름입니다.
- 유형
- 문자열
키
- 설명
- 오브젝트의 키입니다.
- 유형
- 문자열
ETag
- 설명
- 새 오브젝트의 entity 태그입니다.
- 유형
- 문자열
3.4.25. S3 다중 파트 업로드 복사
기존 오브젝트의 데이터를 데이터 소스로 복사하여 부분을 업로드합니다.
uploadId
하위 리소스와 업로드 ID를 지정하여 다중 파트 업로드 사본을 수행합니다.
구문
PUT /BUCKET/OBJECT?partNumber=PartNumber&uploadId=UPLOAD_ID HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
요청 헤더
x-amz-copy-source
- 설명
- 소스 버킷 이름 및 오브젝트 이름입니다.
- 유효한 값
- 버킷 /오브젝트
- 필수 항목
- 제공됨
x-amz-copy-source-range
- 설명
- 소스 오브젝트에서 복사할 바이트 범위입니다.
- 유효한 값
-
range:
bytes=first-last
, 여기서 첫 번째와 마지막은 복사할 0 기반 바이트 오프셋입니다. 예를 들어bytes=0-9
는 소스의 처음 10바이트를 복사하려는 것을 나타냅니다. - 필수 항목
- 없음
응답 엔터티
CopyPartResult
- 설명
- 모든 응답 요소에 대한 컨테이너입니다.
- 유형
- 컨테이너
ETag
- 설명
- 새 부분의 ETag를 반환합니다.
- 유형
- 문자열
LastModified
- 설명
- 부분이 마지막으로 수정된 날짜를 반환합니다.
- 유형
- 문자열
추가 리소스
- 이 기능에 대한 자세한 내용은 Amazon S3 사이트를 참조하십시오.
3.4.26. S3 다중 파트 업로드 중단
다중 파트 업로드를 중지합니다.
uploadId
하위 리소스 및 업로드 ID를 지정하여 다중 파트 업로드를 중단합니다.
구문
DELETE /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
3.4.27. S3 0.0.0.0 상호 운용성
HDFS(HDFS) 액세스가 필요한 데이터 분석 애플리케이션의 경우 HDFS용 Apache S3A 커넥터를 사용하여 Ceph Object Gateway에 액세스할 수 있습니다. S3A 커넥터는 Ceph Object Gateway에 데이터가 저장되는 동안 HDFS 파일 시스템 읽기 및 쓰기 의미 체계와 함께 S3 호환 개체 스토리지를 HDFS 파일 시스템으로 제공하는 오픈 소스 툴입니다.
Ceph Object Gateway는 HDFS 2.7.3과 함께 제공되는 S3A 커넥터와 완벽하게 호환됩니다.
추가 리소스
- 멀티 테넌시에 대한 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드를 참조하십시오.