버킷 오퍼레이션
IBM Cloud® Object Storage 의 최신 기능은 RESTful API를 통해 편리하게 이용할 수 있습니다. 버킷 (오브젝트가 저장되는 위치) 과 상호작용하는 데 사용되는 오퍼레이션 및 메소드가 여기에 문서화되어 있습니다.
권한 및 액세스에 대한 자세한 정보는 버킷 권한 을 참조하십시오.
HMAC (Access/Secret Key) 인증에 대한 참고사항
HMAC 신임 정보를 사용 하여 IBM Cloud® Object Storage 의 인스턴스에 인증하는 경우, HMAC 서명을 구성 할 때 표 1에 표시되는 정보가 필요합니다.
| 키 | 값 | 예 |
|---|---|---|
| {access_key} | 서비스 자격 증명에 할당된 액세스 키 | cf4965cebe074720a4929759f57e1214 |
| {date} | 요청의 형식화된 날짜 (yyyymmdd) |
20180613 |
| {region} | 엔드포인트의 위치 코드 | us-standard |
| {signature} | 비밀 키, 위치 및 날짜를 사용하여 작성되는 해시입니다. | ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e |
| {timestamp} | 요청의 형식화된 날짜 및 시간 | 20180614T001804Z |
버킷 나열
엔드포인트 루트로 전송된 GET 요청은 지정된 서비스 인스턴스와 연결된 버킷 목록을 반환합니다. 엔드포인트에 대한 자세한 정보는 엔드포인트 및 스토리지 위치를 참조하십시오.
| 헤더 | 유형 | 필수? | 설명 |
|---|---|---|---|
ibm-service-instance-id |
문자열 | 예 | 이 서비스 인스턴스에서 작성된 버킷을 나열합니다. |
| 조회 매개변수 | 값 | 필수? | 설명 |
|---|---|---|---|
extended |
없음 | 아니오 | 목록에 LocationConstraint 및 CreationTemplateId 메타데이터를 제공합니다. |
구문
GET https://{endpoint}/
요청 예시
GET / HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
요청 예시
GET / HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
확장된 목록 가져오기
구문
GET https://{endpoint}/?extended
요청 예시
GET /?extended HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
요청 예시
GET /?extended HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<IsTruncated>false</IsTruncated>
<MaxKeys>1000</MaxKeys>
<Prefix/>
<Marker/>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
<LocationConstraint>us-south-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
<LocationConstraint>us-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
<LocationConstraint>eu-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
<LocationConstraint>us-cold</LocationConstraint>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
버킷 작성
엔드포인트 루트로 전송되고 뒤에 문자열이 오는 PUT 요청은 버킷을 작성합니다. 엔드포인트에 대한 자세한 정보는 엔드포인트 및 스토리지 위치를 참조하십시오. 버킷 이름은 전역적으로 고유해야 하며 DNS 규정을 준수해야 합니다. 3-63자길이의 이름은
소문자, 숫자, 점 (마침표) 및 대시 (하이픈) 로 구성되어야 합니다. 버킷 이름은 소문자 또는 숫자로 시작하고 끝나야 합니다. 버킷 이름은 연속적인 점이나 대시를 포함할 수 없습니다. IP 주소와 유사한 버킷 이름은 사용할 수 없습니다. 이 조작은 조작 특정 조회 매개변수를 사용하지 않습니다.
퍼블릭 클라우드의 모든 버킷이 글로벌 네임스페이스를 공유하므로 버킷 이름이 고유해야 합니다. 이 요구 사항을 통해 서비스 인스턴스나 계정 정보를 제공할 필요 없이 버킷에 액세스할 수 있습니다. 또한 cosv1- 또는 account- 접두부가 시스템에 예약되어 있으므로 이러한 접두부로 시작되는 이름의 버킷은 작성할 수 없습니다.
| 헤더 | 유형 | 필수? | 설명 |
|---|---|---|---|
ibm-service-instance-id |
문자열 | 예 | 이 헤더는 버킷이 생성될 서비스 인스턴스를 참조하며, 해당 인스턴스를 통해 데이터 사용량에 대한 요금이 청구될 수 있습니다. |
x-amz-bucket-object-lock-enabled |
부울 | 아니오 | 새 버킷에서 오브젝트 잠금을 사용할지 여부를 지정합니다. 이 헤더는 자동으로 버전화를 사용으로 설정합니다. |
새 버킷에 오브젝트 잠금을 설정할 때 x-amz-bucket-object-lock-enabled 헤더에 인쇄 오류가 없는지 확인하십시오. 헤더 또는 값의 철자가 잘못된 경우 버킷이 작성되지만 오브젝트 잠금 및 버전화는 사용으로 설정되지 않습니다.
개인 식별 정보(PII): 버킷을 생성하거나 오브젝트를 추가할 때, 버킷이나 오브젝트의 이름에 이름, 위치 또는 기타 수단을 통해 사용자(자연인)를 식별할 수 있는 정보를 사용해서는 안 됩니다.
구문
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
요청 예시
다음 예제는 'images' 라는 버킷을 작성합니다.
PUT /images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
요청 예시
PUT /images HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
다른 스토리지 클래스로 버킷 작성
다른 스토리지 클래스를 가진 버킷을 생성하려면, 버킷 엔드포인트로 PUT 요청의 본문에 LocationConstraint 값이 {provisioning code} 인 버킷 구성을 지정하는 XML 블록을 전송하십시오. 엔드포인트에 대한 자세한 정보는 엔드포인트 및 스토리지 위치를
참조하십시오. 표준 버킷 이름 지정 규칙 이 적용됩니다. 이 조작은 조작 특정 조회 매개변수를 사용하지 않습니다.
| | 헤더 | 유형 | 설명 | |--------------------------|--------|--------------------------------------------------------------------------------------------------------------------- | ibm-service-instance-id | 문자열 | 이 헤더는 버킷이 생성될 서비스 인스턴스를
참조하며, 해당 인스턴스를 통해 데이터 사용량에 대한 요금이 청구될 수 있습니다. |
구문
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
CreateBucketConfiguration |
컨테이너 | LocationConstraint |
|
|
LocationConstraint |
문자열 |
|
CreateBucketConfiguration |
올바른 위치 코드 |
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
LocationConstraint에 대한 올바른 프로비저닝 코드 목록은 스토리지 클래스 안내서에서 참조할 수 있습니다.
요청 예시
다음 예제는 'vault-images' 라는 버킷을 작성합니다.
PUT /vault-images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 110
요청 예시
PUT /vault-images HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
응답 예
HTTP/1.1 200 OK
Date: Fri, 17 Mar 2017 17:52:17 GMT
X-Clv-Request-Id: b6483b2c-24ae-488a-884c-db1a93b9a9a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
Content-Length: 0
Key Protect 또는 Hyper Protect Crypto Services 관리형 암호화 키(SSE-KP)를 사용하여 버킷 생성
Key Protect 또는 Hyper Protect Crypto Services에서 암호화 키를 관리하는 버킷을 작성하려면 활성 Key Protect 또는 Hyper Protect Crypto Services 서비스 인스턴스에 대한 액세스 권한이 있어야 합니다. 이 조작은 조작 특정 조회 매개변수를 사용하지 않습니다.
Key Protect 를 사용하여 암호화 키를 관리하는 방법에 대한 자세한 내용은 Key Protect 의 문서를 참조하십시오.
Hyper Protect Crypto Services에 대한 자세한 정보는 문서를 참조하십시오.
크로스 리전 버킷에 대한 관리형 암호화는 가장 가까운 고가용성 위치 (us-south 또는 jp-tok)에 있는 Key Protect 인스턴스의 루트 키를 사용 해야 합니다.
| 헤더 | 유형 | 설명 |
|---|---|---|
ibm-service-instance-id |
문자열 | 이 헤더는 버킷이 생성될 서비스 인스턴스를 참조하며, 해당 인스턴스를 통해 데이터 사용량에 대한 요금이 청구될 수 있습니다. |
ibm-sse-kp-encryption-algorithm |
문자열 | 이 헤더는 Key Protect 를 사용하여 저장된 암호화 키와 함께 사용할 알고리즘 및 키 크기를 지정하는 데 사용됩니다. 이 값은 문자열 AES256으로 설정해야 합니다. |
ibm-sse-kp-customer-root-key-crn |
문자열 | 이 헤더는 Key Protect 또는 Hyper Protect Crypto Services 에서 이 버킷을 암호화하는 데 사용되는 특정 루트 키를 참조하는 데 사용됩니다. 이 값은 루트 키의 전체 CRN이어야 합니다. |
구문
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
요청 예시
다음 예제는 'secure-files' 라고 하는 버킷을 작성합니다.
PUT /secure-files HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us-south.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
ibm-service-instance-id: {ibm-service-instance-id}
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
요청 예시
PUT /secure-files HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
응답 예
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
버킷의 헤더 검색
버킷에 대해 발행된 ‘ HEAD ’는 해당 버킷의 헤더 정보를 반환합니다.
HEAD 요청은 본문을 리턴하지 않으므로 NoSuchBucket과 같은 특정 오류 메시지를 리턴할 수 없으며 NotFound만 리턴할 수 있습니다.
구문
HEAD https://{endpoint}/{bucket-name} # path style
HEAD https://{bucket-name}.{endpoint} # virtual host style
요청 예시
다음 예제는 'images' 버킷의 헤더를 페치합니다.
HEAD /images HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
요청 예시
HEAD /images HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
요청 예시
HEAD Key Protect (S3) 암호화가 적용된 버킷에 대한 요청은 추가 헤더를 반환합니다.
HEAD /secure-files HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
요청 예시
HEAD /secure-files HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
ibm-sse-kp-enabled: True
ibm-sse-kp-crk-id: {customer-root-key-id}
특정 버킷에 있는 객체 나열하기 (버전 2)
버킷을 대상으로 한 GET 요청은 객체 목록을 반환하며, 한 번에 최대 1,000개까지 반환되고, 사전순이 아닌 순서로 반환됩니다. Object Storage 에서는 스토리지 클래스 연산이 구현되어 있지 않으므로, 응답에서 반환되는 StorageClass 값은 기본값입니다. 이 오퍼레이션은 오퍼레이션 특정 헤더 또는 페이로드 요소를
사용하지 않습니다.
구문
GET https://{endpoint}/{bucket-name}?list-type=2 # path style
GET https://{bucket-name}.{endpoint}?list-type=2 # virtual host style
선택적 조회 매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
list-type |
문자열 | API의 버전 2를 표시하며 값은 2여야 합니다. |
prefix |
문자열 | 응답을 prefix 로 시작하는 객체 이름으로 제한합니다. |
delimiter |
문자열 | prefix와 delimiter 간의 오브젝트를 그룹화합니다. |
encoding-type |
문자열 | XML에서 지원되지 않는 유니코드 문자가 오브젝트 이름에 사용되는 경우, 응답을 올바르게 인코딩하기 위해 이 매개변수를 url로 설정할 수 있습니다. |
max-keys |
문자열 | 응답에 표시할 오브젝트 수를 제한합니다. 기본값 및 최대값은 1,000입니다. |
fetch-owner |
문자열 | API의 버전 2는 기본적으로 Owner 정보를 포함하지 않습니다. 응답에 ‘ Owner ’ 정보를 포함하려면 이 매개변수를 ‘ true ’로 설정하십시오. |
continuation-token |
문자열 | 응답이 잘릴 때 리턴할 다음 오브젝트 세트를 지정합니다(IsTruncated 요소가 true를 리턴).귀하의 초기 응답에는 ‘ NextContinuationToken ’ 요소가 포함되어 있습니다. 다음 요청에서 이 토큰을 continuation-token의 값으로 사용하십시오. |
start-after |
문자열 | 특정 키 오브젝트 다음에 키 이름을 리턴합니다. 이 매개변수는 초기 요청에서만 유효합니다. continuation-token 매개변수가 요청에 포함되어 있는 경우 이 매개변수는 무시됩니다. |
요청 예 (단순)
이 요청은 "apiary" 버킷 내 오브젝트를 나열합니다.
GET /apiary?list-type=2 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
샘플 요청 (단순)
GET /apiary?list-type=2 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예(단순)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 814
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<KeyCount>3</KeyCount>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
요청 예(max-keys 매개변수)
이 요청은 리턴되는 최대 키가 1로 설정된 "apiary" 버킷 내 오브젝트를 나열합니다.
GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
요청 예시 (max-keys 매개변수)
GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예(잘린 응답)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 598
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<NextContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
요청 예(continuation-token 매개변수)
이 요청은 연속 토큰이 지정된 "apiary" 버킷 내 오브젝트를 나열합니다.
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
요청 예시 (continuation-token 매개변수)
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예(잘린 응답, continuation-token 매개변수)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 604
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<ContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</ContinuationToken>
<NextContinuationToken>1a8j20CqowRrM4epIQ7fTBuyPZWZUeA8Epog16wYu9KhAPNoYkWQYhGURsIQbll1lP7c-OO-V5Vyzu6mogiakC4NSwlK4LyRDdHQgY-yPH4wMB76MfQR61VyxI4TJLxIWTPSZA0nmQQWcuV2mE4jiDA</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
특정 버킷에 있는 객체 나열 (사용 중단됨)
이 API는 이전 버전과의 호환성을 위해 포함되어 있습니다. 버킷에서 오브젝트를 검색하는 권장 방법은 버전 2를 참조하십시오.
버킷을 대상으로 한 GET 요청은 객체 목록을 반환하며, 한 번에 최대 1,000개까지 반환되고, 사전순이 아닌 순서로 반환됩니다. Object Storage 에서는 스토리지 클래스 연산이 구현되어 있지 않으므로, 응답에서 반환되는 StorageClass 값은 기본값입니다. 이 오퍼레이션은 오퍼레이션 특정 헤더 또는 페이로드
요소를 사용하지 않습니다.
구문
GET https://{endpoint}/{bucket-name} # path style
GET https://{bucket-name}.{endpoint} # virtual host style
목록 오브젝트 메소드에 대한 선택적 조회 매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
prefix |
문자열 | 응답을 prefix 로 시작하는 객체 이름으로 제한합니다. |
delimiter |
문자열 | prefix와 delimiter 간의 오브젝트를 그룹화합니다. |
encoding-type |
문자열 | XML에서 지원되지 않는 유니코드 문자가 오브젝트 이름에 사용되는 경우, 응답을 올바르게 인코딩하기 위해 이 매개변수를 url로 설정할 수 있습니다. |
max-keys |
문자열 | 응답에 표시할 오브젝트 수를 제한합니다. 기본값 및 최대값은 1,000입니다. |
marker |
문자열 | UTF-8 의 바이너리 순서에 따라, 목록이 시작될 객체를 지정합니다. |
요청 예시
이 요청은 "apiary" 버킷 내 오브젝트를 나열합니다.
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
요청 예시
GET /apiary HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<Marker/>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
버킷 삭제
빈 버킷에 대해 DELETE 요청을 보내면 해당 버킷이 삭제됩니다. 삭제 후 버킷 이름은 시스템에 의해 5분 동안 보류됩니다. 5분 후, 해당 이름은 재사용 가능해집니다. 빈 버킷만 삭제할 수 있습니다.
Object Storage 서비스 인스턴스가 삭제되면 해당 인스턴스의 모든 버킷 이름이 시스템에 의해 7일동안 예약 상태로 유지됩니다. 7일후에는 다시 사용할 수 있도록 이름이 해제됩니다.
구문
DELETE https://{endpoint}/{bucket-name} # path style
DELETE https://{bucket-name}.{endpoint} # virtual host style
선택적 헤더
| 이름 | 유형 | 설명 |
|---|---|---|
aspera-ak-max-tries |
문자열 | 삭제 오퍼레이션을 시도하는 횟수를 지정합니다. 기본값은 2입니다. |
요청 예시
DELETE /apiary HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
요청 예시
DELETE /apiary HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
서버는 204 No Content로 응답합니다.
비어 있지 않은 버킷이 삭제 요청되면 서버가 409 Conflict로 응답합니다.
응답 예
<Error>
<Code>BucketNotEmpty</Code>
<Message>The bucket you tried to delete is not empty.</Message>
<Resource>/apiary/</Resource>
<RequestId>9d2bbc00-2827-4210-b40a-8107863f4386</RequestId>
<httpStatusCode>409</httpStatusCode>
</Error>
기존 버킷에서 오브젝트 잠금 구성
?object-lock 조회 매개변수를 사용하여 비어 있는 버킷으로 주소 지정되는 PUT 요청은 버킷에 새 오브젝트 잠금 구성을 설정합니다.
구문
PUT https://{endpoint}/{bucket-name}?object-lock # path style
PUT https://{bucket-name}.{endpoint}?object-lock # virtual host style
오브젝트 잠금 구성은 요청 본문에서 XML로 제공됩니다. 새 요청은 버킷에 있는 기존 복제 규칙을 겹쳐씁니다.
오브젝트 잠금 구성은 하나의 규칙을 포함해야 합니다.
| 헤더 | 유형 | 설명 |
|---|---|---|
Content-MD5 |
문자열 | Base64 는 페이로드의 128비트 MD5 해시를 인코딩했으며, 이는 전송 중에 페이로드가 변조되지 않았는지 확인하기 위한 무결성 검사 용도로 사용됩니다. |
x-amz-checksum-crc32 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32 체크섬입니다. |
x-amz-checksum-crc32c |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32C 체크섬입니다. |
x-amz-checksum-crc64nvme |
문자열 | 이 헤더는 개체의 Base64 인코딩된 64비트 CRC64NVME 체크섬입니다. CRC64NVME 체크섬은 항상 전체 객체 체크섬입니다. |
x-amz-checksum-sha1 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 160비트 SHA1 다이제스트입니다. |
x-amz-checksum-sha256 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 256비트 SHA256 다이제스트입니다. |
x-amz-sdk-checksum-algorithm |
문자열 | SDK를 사용할 때 오브젝트의 체크섬을 생성하는 데 사용되는 알고리즘을 나타냅니다. |
페이로드에 대한 무결성 검사로 Content-MD5 헤더 또는 checksum 헤더( x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, x-amz-checksum-sha256 포함)가 필요합니다.
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
ObjectLockConfiguration |
컨테이너 | ObjectLockEnabled, Rule |
없음 | 한계 1. |
ObjectLockEnabled |
문자열 | 없음 | ObjectLockConfiguration |
유일한 유효한 값은 ENABLED 입니다. |
Rule |
컨테이너 | DefaultRetention |
ObjectLockConfiguration |
한계 1 |
DefaultRetention |
컨테이너 | Days, Mode, Years |
Rule |
한계 1. |
Days |
정수 | 없음 | DefaultRetention |
기본 보존 기간에 대해 지정할 일 수입니다. Years 와 결합할 수 없습니다. |
Mode |
문자열 | 없음 | DefaultRetention |
COMPLIANCE 또는 GOVERNANCE. |
Years |
정수 | 없음 | DefaultRetention |
기본 보존 기간에 대해 지정할 년 수입니다. Days 와 결합할 수 없습니다. |
요청 예제
이 요청은 "apiary" 버킷 내 오브젝트를 나열합니다.
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
응답 예
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>ENABLED</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Days>30</Days>
<Mode>COMPLIANCE</Mode>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
버킷에 대해 취소되었거나 완료되지 않은 다중 파트 업로드 나열
적절한 매개변수가 있는 버킷에 발행된 GET은 버킷에 대한 취소되거나 불완전한 다중 파트 업로드에 대한 정보를 검색합니다.
구문
GET https://{endpoint}/{bucket-name}?uploads= # path style
GET https://{bucket-name}.{endpoint}?uploads= # virtual host style
매개변수
| 이름 | 유형 | 설명 |
|---|---|---|
prefix |
문자열 | 응답을 {prefix} 로 시작하는 객체 이름으로 제한합니다. |
delimiter |
문자열 | prefix와 delimiter 간의 오브젝트를 그룹화합니다. |
encoding-type |
문자열 | XML에서 지원되지 않는 유니코드 문자가 오브젝트 이름에 사용되는 경우, 응답을 올바르게 인코딩하기 위해 이 매개변수를 url로 설정할 수 있습니다. |
max-uploads |
정수 | 응답에 표시할 오브젝트 수를 제한합니다. 기본값 및 최대값은 1,000입니다. |
key-marker |
문자열 | 목록이 시작될 위치를 지정합니다. |
upload-id-marker |
문자열 | key-marker 가 지정되지 않은 경우 무시되며, 지정된 경우에는 upload-id-marker 위에 부품 목록을 표시하기 시작할 위치를 설정합니다. |
요청 예시
다음 예제는 현재 취소되고 불완전한 모든 다중 파트 업로드를 검색합니다.
GET /apiary?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
GET /apiary?uploads= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 에제(진행 중인 다중 파트 업로드가 없음)
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:22:27 GMT
X-Clv-Request-Id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Content-Type: application/xml
Content-Length: 374
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>apiary</Bucket>
<KeyMarker/>
<UploadIdMarker/>
<NextKeyMarker>multipart-object-123</NextKeyMarker>
<NextUploadIdMarker>0000015a-df89-51d0-2790-dee1ac994053</NextUploadIdMarker>
<MaxUploads>1000</MaxUploads>
<IsTruncated>false</IsTruncated>
<Upload>
<Key>file</Key>
<UploadId>0000015a-d92a-bc4a-c312-8c1c2a0e89db</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-16T22:09:01.002Z</Initiated>
</Upload>
<Upload>
<Key>multipart-object-123</Key>
<UploadId>0000015a-df89-51d0-2790-dee1ac994053</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-18T03:50:02.960Z</Initiated>
</Upload>
</ListMultipartUploadsResult>
버킷의 CORS(Cross-Origin Resource Sharing) 구성 나열
적절한 매개변수가 있는 버킷에 발행된 GET은 버킷의 CORS(Cross-Origin Resource Sharing) 구성에 대한 정보를 검색합니다.
구문
GET https://{endpoint}/{bucket-name}?cors= # path style
GET https://{bucket-name}.{endpoint}?cors= # virtual host style
요청 예시
다음 예제는 “apiary” 버킷에 대한 CORS 구성을 보여줍니다.
GET /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
GET /apiary?cors= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예시: CORS 에 대한 구성 세트가 없습니다
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:20:30 GMT
X-Clv-Request-Id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Content-Type: application/xml
Content-Length: 123
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
</CORSRule>
</CORSConfiguration>
버킷의 CORS(Cross-Origin Resource Sharing) 구성 작성
적절한 매개변수가 있는 버킷에 발행된 PUT은 버킷의 CORS(Cross-Origin Resource Sharing) 구성을 작성하거나 바꿉니다.
구문
PUT https://{endpoint}/{bucket-name}?cors= # path style
PUT https://{bucket-name}.{endpoint}?cors= # virtual host style
페이로드 요소
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
CORSConfiguration |
컨테이너 | CORSRule |
|
|
CORSRule |
컨테이너 | AllowedOrigin, AllowedMethod |
삭제 |
|
AllowedOrigin |
문자열 |
|
CORSRule |
올바른 오리진 문자열 |
AllowedMethod |
문자열 |
|
CORSRule |
올바른 메소드 문자열 |
| 헤더 | 유형 | 설명 |
|---|---|---|
Content-MD5 |
문자열 | base64 는 페이로드의 128비트 MD5 해시를 인코딩했으며, 이는 전송 중에 페이로드가 변조되지 않았는지 확인하기 위한 무결성 검사 목적으로 사용됩니다. |
x-amz-checksum-crc32 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32 체크섬입니다. |
x-amz-checksum-crc32c |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32C 체크섬입니다. |
x-amz-checksum-crc64nvme |
문자열 | 이 헤더는 개체의 Base64 인코딩된 64비트 CRC64NVME 체크섬입니다. CRC64NVME 체크섬은 항상 전체 객체 체크섬입니다. |
x-amz-checksum-sha1 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 160비트 SHA1 다이제스트입니다. |
x-amz-checksum-sha256 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 256비트 SHA256 다이제스트입니다. |
x-amz-sdk-checksum-algorithm |
문자열 | SDK를 사용할 때 오브젝트의 체크섬을 생성하는 데 사용되는 알고리즘을 나타냅니다. |
페이로드에 대한 무결성 검사로 Content-MD5 헤더 또는 checksum 헤더( x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, x-amz-checksum-sha256 포함)가 필요합니다. 다음 스니펫은 base64-encoded MD5 해시의 이진 표현인 Content-MD5 헤더의 콘텐츠를 얻는 한 가지 방법을 보여줍니다.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
요청 예시
다음 예제에서는 www.ibm.com 에서 GET, PUT 및 POST 요청을 버킷으로 보낼 수 있도록 허용하는 ‘ CORS ’ 구성을 추가합니다.
PUT /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
요청 예시
PUT /apiary?cors= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
응답 예
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
버킷의 CORS(Cross-Origin Resource Sharing) 구성 삭제
적절한 매개변수가 있는 버킷에 발행된 DELETE은 버킷의 CORS(Cross-Origin Resource Sharing) 구성을 작성하거나 바꿉니다.
구문
DELETE https://{endpoint}/{bucket-name}?cors= # path style
DELETE https://{bucket-name}.{endpoint}?cors= # virtual host style
요청 예시
다음 예제는 버킷에 대한 ‘ CORS ’ 구성을 삭제합니다.
DELETE /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
DELETE /apiary?cors= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
서버는 204 No Content로 응답합니다.
버킷에 대한 위치 제한조건 나열
적절한 매개변수가 있는 버킷에 발행된 GET은 버킷에 대한 위치 정보를 검색합니다.
구문
GET https://{endpoint}/{bucket-name}?location # path style
GET https://{bucket-name}.{endpoint}?location # virtual host style
요청 예시
다음 예제는 "apiary" 버킷의 위치를 검색합니다.
GET /apiary?location= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
GET /apiary?location= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
HTTP/1.1 200 OK
Date: Tue, 12 Jun 2018 21:10:57 GMT
X-Clv-Request-Id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Content-Type: application/xml
Content-Length: 161
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
us-south-standard
</LocationConstraint>
버킷 라이프사이클 구성 작성
PUT 오퍼레이션은 라이프사이클 조회 매개변수를 사용하여 버킷에 대한 라이프사이클 설정을 지정합니다. 페이로드에 대한 무결성 검사로 Content-MD5 헤더 또는 checksum 헤더( x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme,
x-amz-checksum-sha1, x-amz-checksum-sha256 포함)가 필요합니다.
다음 스니펫은 base64-encoded MD5 해시의 이진 표현인 Content-MD5 헤더의 콘텐츠를 얻는 한 가지 방법을 보여줍니다.
구문
PUT https://{endpoint}/{bucket-name}?lifecycle # path style
PUT https://{bucket-name}.{endpoint}?lifecycle # virtual host style
페이로드 요소
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
LifecycleConfiguration |
컨테이너 | Rule |
없음 | 한계 1 |
Rule |
컨테이너 | ID, Status, Filter, Transition |
LifecycleConfiguration |
한계 1 |
ID |
문자열 | 없음 | Rule |
필수 는 (a-z,A-Z,0-9) 및 다음 기호로 구성되어야 합니다.! _ . * ' ( ) - |
Filter |
문자열 | Prefix |
Rule |
** 요소가 포함**되어야 합니다Prefix. |
Expiration |
컨테이너 | Days, Date, ExpiredObjectDeleteMarker |
Rule |
한계 1 |
Prefix |
문자열 | 없음 | Filter |
상태 전이 (아카이브) 규칙을 사용하는 경우 값을 반드시 <Prefix/> 로 설정해야 합니다. 이 제한사항은 만기 규칙에는 적용되지 않습니다. |
Transition |
컨테이너 | Days, StorageClass |
Rule |
한계 1상태 전이 규칙 및 총 1000개의 규칙. |
Days |
음수가 아닌 정수 | 없음 | Transition |
반드시 0이상의 값이어야 합니다. |
Date |
날짜 | 없음 | Transition |
ISO 8601 형식을 따라야 하며, 날짜는 미래의 날짜여야 합니다. |
StorageClass |
문자열 | 없음 | Transition |
반드시 GLACIER 또는 ACCELERATED 로 설정해야 합니다. |
ExpiredObjectDeleteMarker |
부울 | 없음 | Expiration |
true 또는 false 이어야 합니다. |
NoncurrentVersionExpiration |
컨테이너 | NoncurrentDays |
NoncurrentVersionExpiration |
한계 1 |
NoncurrentDays |
양수 | 없음 | Transition |
0보다 큰 값이어야 합니다. |
AbortIncompleteMultipartUpload |
컨테이너 | DaysAfterInitiation |
Rule |
한계 1 |
DaysAfterInitiation |
음수가 아닌 정수 | 없음 | AbortIncompleteMultipartUpload |
0보다 큰 값이어야 합니다. |
| 헤더 | 유형 | 설명 |
|---|---|---|
Content-MD5 |
문자열 | base64 는 페이로드의 128비트 MD5 해시를 인코딩했으며, 이는 전송 중에 페이로드가 변조되지 않았는지 확인하기 위한 무결성 검사 목적으로 사용됩니다. |
x-amz-checksum-crc32 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32 체크섬입니다. |
x-amz-checksum-crc32c |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32C 체크섬입니다. |
x-amz-checksum-crc64nvme |
문자열 | 이 헤더는 개체의 Base64 인코딩된 64비트 CRC64NVME 체크섬입니다. CRC64NVME 체크섬은 항상 전체 객체 체크섬입니다. |
x-amz-checksum-sha1 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 160비트 SHA1 다이제스트입니다. |
x-amz-checksum-sha256 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 256비트 SHA256 다이제스트입니다. |
x-amz-sdk-checksum-algorithm |
문자열 | SDK를 사용할 때 오브젝트의 체크섬을 생성하는 데 사용되는 알고리즘을 나타냅니다. |
IBM Cloud® Object Storage IaaS (IAM이 아닌) 계정은 전환 저장 클래스를 로 설정할 수 ACCELERATED 없습니다.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Transition>
<Days>{integer}</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
다음 스니펫은 해당 특정 헤더의 컨텐츠를 작성하는 한 가지 방법을 보여줍니다.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
요청 예시
PUT /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
요청 예시
PUT /apiary?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
서버는 200 OK로 응답합니다.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>{integer}</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
다음 스니펫은 해당 특정 헤더의 컨텐츠를 작성하는 한 가지 방법을 보여줍니다.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
요청 예시
PUT /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
Date: Fri, 28 Feb 2020 14:12:06 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:WrlFRE2KMmhutBf3CxIZoNLl/ko=
Content-MD5: To3JYtaVNR3+aGYtl1dlmw==
Content-Length: 321
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>100</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
응답 예시 서버는 200 OK 을 응답으로 반환합니다.
We are completely uploaded and fine
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:12:06 GMT
X-Clv-Request-Id: 587d909f-4939-41ef-8c16-80aea16a0587
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 587d909f-4939-41ef-8c16-80aea16a0587
Content-Length: 0
요청 예시
PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 123
요청 예시
PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 123
버킷 라이프사이클 구성 검색
GET 오퍼레이션은 라이프사이클 조회 매개변수를 사용하여 버킷에 대한 라이프사이클 설정을 검색합니다.
구문
GET https://{endpoint}/{bucket-name}?lifecycle # path style
GET https://{bucket-name}.{endpoint}?lifecycle # virtual host style
요청 예시
GET /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
요청 예시
GET /apiary?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
응답 예
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
요청 예시
GET /cit_dump-log?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:00:43 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:iKm2QNetyW740kylP6ja2pze3DM=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
응답 예
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:00:43 GMT
X-Clv-Request-Id: ecbf9294-284d-4169-b2cd-5d52b2450808
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
x-amz-request-id: ecbf9294-284d-4169-b2cd-5d52b2450808
Content-Type: application/xml
Content-Length: 276
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>270</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
만기 규칙을 사용하여 시간이 경과된(stale) 데이터 삭제
버킷의 불변 Object Storage 보존 정책이 적용되는 개체에 대한 만료 작업은 해당 보존 정책이 더 이상 적용되지 않을 때까지 연기됩니다.
라이프사이클 구성을 사용하여 오브젝트를 삭제하는 방법에 대한 자세한 정보는 문서 를 참조하십시오.
이 PUT 오퍼레이션 구현은 lifecycle 조회 매개변수를 사용하여 버킷의 라이프사이클 설정을 지정합니다. 이 오퍼레이션은 버킷에 대한 단일 라이프사이클 정책 정의를 허용합니다. 이 정책은 다음 매개변수들로 구성된 규칙 집합으로 정의됩니다: ID, Status, Filter 및 Expiration.
| 헤더 | 유형 | 설명 |
|---|---|---|
Content-MD5 |
문자열 | Base64 는 페이로드의 128비트 MD5 해시를 인코딩했으며, 이는 전송 중에 페이로드가 변조되지 않았는지 확인하기 위한 무결성 검사 용도로 사용됩니다. |
x-amz-checksum-crc32 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32 체크섬입니다. |
x-amz-checksum-crc32c |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32C 체크섬입니다. |
x-amz-checksum-crc64nvme |
문자열 | 이 헤더는 개체의 Base64 인코딩된 64비트 CRC64NVME 체크섬입니다. CRC64NVME 체크섬은 항상 전체 객체 체크섬입니다. |
x-amz-checksum-sha1 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 160비트 SHA1 다이제스트입니다. |
x-amz-checksum-sha256 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 256비트 SHA256 다이제스트입니다. |
x-amz-sdk-checksum-algorithm |
문자열 | SDK를 사용할 때 오브젝트의 체크섬을 생성하는 데 사용되는 알고리즘을 나타냅니다. |
페이로드에 대한 무결성 검사로 Content-MD5 헤더 또는 checksum 헤더( x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, x-amz-checksum-sha256 포함)가 필요합니다.
다음 스니펫은 base64-encoded MD5 해시의 이진 표현인 Content-MD5 헤더의 콘텐츠를 얻는 한 가지 방법을 보여줍니다.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
LifecycleConfiguration |
컨테이너 | Rule |
없음 | 한계 1. |
Rule |
컨테이너 | ID, Status, Filter, Expiration |
LifecycleConfiguration |
한계 1000. |
ID |
문자열 | 없음 | Rule |
(a-z,A-Z,0-9) 및 다음 기호로 구성되어야 합니다. ! _ . * ' ( ) - |
Filter |
문자열 | Prefix |
Rule |
Prefix 요소가 포함되어야 합니다. |
Prefix |
문자열 | 없음 | Filter |
규칙은 이 접두부와 일치하는 키가 있는 모든 오브젝트에 적용됩니다. |
Expiration |
컨테이너 | Days 또는 Date |
Rule |
한계 1. |
Days |
음수가 아닌 정수 | 없음 | Expiration |
0보다 큰 값이어야 합니다. |
Date |
날짜 | 없음 | Expiration |
ISO 8601 형식이어야 합니다. |
구문
PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
요청 예시
PUT /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
<LifecycleConfiguration>
<Rule>
<ID>id1</ID>
<Filter />
<Status>Enabled</Status>
<Expiration>
<Days>60</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
버켓에 대한 라이프사이클 구성 삭제
적절한 매개변수가 있는 버킷에 발행된 DELETE는 버킷에 대한 라이프사이클 구성을 제거합니다.
구문
DELETE https://{endpoint}/{bucket-name}?lifecycle # path style
DELETE https://{bucket-name}.{endpoint}?lifecycle # virtual host style
요청 예시
DELETE /apiary?lifecycle HTTP/1.1
Authorization: {authorization-string}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
DELETE /apiary?lifecycle HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
서버는 204 No Content로 응답합니다.
요청 예시
DELETE /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:16:47 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:n25GU28DiBgkNVgET5hKmLmp938=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
응답 예
HTTP/1.1 204 No Content
Date: Fri, 28 Feb 2020 14:16:47 GMT
X-Clv-Request-Id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
서버는 204 No Content로 응답합니다.
기존 버킷에 보존 정책 추가
불변 오브젝트 스토리지는 특정 지역에서만 사용 가능합니다. 세부사항은 통합 서비스를 참조하십시오. 또한 이 서비스를 이용하려면 ‘스탠다드’ 요금제에 가입해야 합니다. 세부사항은 가격을 참조하십시오.
문서 에서 불변 Object Storage 에 대해 자세히 알아보십시오.
보존 기간 설정 MinimumRetention, DefaultRetention 및 MaximumRetention 의 지원되는 최소 및 최대 값은 최소 0일, 최대 365,243일(1,000년)입니다.
이 조작은 추가 조회 매개변수를 사용하지 않습니다. 페이로드의 무결성 검사에는 Content-MD5 헤더 또는 checksum 헤더( x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1 또는 x-amz-checksum-sha256 포함)가 필요합니다. 다음 스니펫은 base64-encoded MD5 해시의 이진 표현인 Content-MD5 헤더의 콘텐츠를 얻는 한 가지 방법을 보여줍니다.
정책은 보존 기간이 끝날 때까지 적용되며 보존 기간이 만료될 때까지 변경할 수 없습니다. IBM Cloud® Object Storage 는 대부분의 작업에 S3 API를 사용하지만, 보존 정책을 구성하는 데 사용되는 API는 S3 API와 동일하지 않습니다. 일부 용어는 공유될 수 있지만, 두 API는 서로 다른 목적과 구조를 가지고 있습니다. 조직 내 사용자가 IBM Cloud 관리자조차 삭제할 수 없는 개체를 생성하지 않도록 하려면 이 문서를 주의 깊게 읽으십시오.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
구문
PUT https://{endpoint}/{bucket-name}?protection= # path style
PUT https://{bucket-name}.{endpoint}?protection= # virtual host style
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 제한조건 |
|---|---|---|---|---|
ProtectionConfiguration |
컨테이너 | Status, MinimumRetention, MaximumRetention, DefaultRetention |
|
|
Status |
문자열 |
|
ProtectionConfiguration |
올바른 상태 문자열 |
MinimumRetention |
컨테이너 | Days |
ProtectionConfiguration |
|
MaximumRetention |
컨테이너 | Days |
ProtectionConfiguration |
|
DefaultRetention |
컨테이너 | Days |
ProtectionConfiguration |
|
Days |
정수 |
|
MinimumRetention, MaximumRetention, DefaultRetention |
올바른 보존 정수 |
| 헤더 | 유형 | 설명 |
|---|---|---|
Content-MD5 |
문자열 | base64 는 페이로드의 128비트 MD5 해시를 인코딩했으며, 이는 전송 중에 페이로드가 변조되지 않았는지 확인하기 위한 무결성 검사 목적으로 사용됩니다. |
x-amz-checksum-crc32 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32 체크섬입니다. |
x-amz-checksum-crc32c |
문자열 | 이 헤더는 개체의 Base64 인코딩된 32비트 CRC32C 체크섬입니다. |
x-amz-checksum-crc64nvme |
문자열 | 이 헤더는 개체의 Base64 인코딩된 64비트 CRC64NVME 체크섬입니다. CRC64NVME 체크섬은 항상 전체 객체 체크섬입니다. |
x-amz-checksum-sha1 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 160비트 SHA1 다이제스트입니다. |
x-amz-checksum-sha256 |
문자열 | 이 헤더는 개체의 Base64 인코딩된 256비트 SHA256 다이제스트입니다. |
x-amz-sdk-checksum-algorithm |
문자열 | SDK를 사용할 때 오브젝트의 체크섬을 생성하는 데 사용되는 알고리즘을 나타냅니다. |
요청 예시
PUT /example-bucket?protection= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20181011T190354Z
x-amz-content-sha256: 2938f51643d63c864fdbea618fe71b13579570a86f39da2837c922bae68d72df
Content-MD5: GQmpTNpruOyK6YrxHnpj7g==
Content-Type: text/plain
Host: 67.228.254.193
Content-Length: 299
<ProtectionConfiguration>
<Status>Retention</Status>
<MinimumRetention>
<Days>100</Days>
</MinimumRetention>
<MaximumRetention>
<Days>10000</Days>
</MaximumRetention>
<DefaultRetention>
<Days>2555</Days>
</DefaultRetention>
</ProtectionConfiguration>
응답 예
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2018 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.14.1
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
정적 웹사이트 호스팅을 위한 버킷 구성
적절한 매개변수를 지정하여 버킷에 대해 발행된 버킷 구성( PUT )은 해당 버킷에 대한 정적 웹사이트 구성을 생성하거나 업데이트합니다.
구문
PUT https://{endpoint}/{bucket-name}?website # path style
PUT https://{bucket-name}.{endpoint}?website # virtual host style
페이로드 요소
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 참고 |
|---|---|---|---|---|
WebsiteConfiguration |
컨테이너 | ErrorDocument, IndexDocument, RedirectAllRequestsTo, RoutingRule |
|
필수 |
ErrorDocument |
컨테이너 | Key |
WebsiteConfiguration |
|
Key |
문자열 |
|
ErrorDocument |
|
IndexDocument |
컨테이너 | Suffix |
WebsiteConfiguration |
|
Suffix |
문자열 |
|
IndexDocument |
|
RedirectAllRequestsTo |
컨테이너 | HostName, Protocol |
WebsiteConfiguration |
제공된 경우 지정된 유일한 요소여야 합니다. |
HostName |
문자열 |
|
RedirectAllRequestsTo |
|
Protocol |
문자열 |
|
RedirectAllRequestsTo |
|
RoutingRules |
컨테이너 | RoutingRule |
WebsiteConfiguration |
|
RoutingRule |
컨테이너 | Condition, Redirect |
RoutingRules |
|
Condition |
컨테이너 | HttpErrorCodeReturnedEquals, KeyPrefixEquals |
RoutingRule |
|
HttpErrorCodeReturnedEquals |
문자열 |
|
Condition |
|
KeyPrefixEquals |
문자열 |
|
Condition |
|
Redirect |
컨테이너 | HostName, HttpRedirectCode, Protocol, ReplaceKeyPrefixWith, ReplaceKeyWith |
RoutingRule |
|
HostName |
문자열 |
|
Redirect |
|
HttpRedirectCode |
문자열 |
|
Redirect |
|
Protocol |
문자열 |
|
Redirect |
|
ReplaceKeyPrefixWith |
문자열 |
|
Redirect |
|
ReplaceKeyWith |
문자열 |
|
Redirect |
|
요청 예제
다음 예제는 각 접두부에서 index.html 파일을 찾는 기본 웹 사이트를 제공하는 웹 사이트 구성을 추가합니다. 예를 들어, /apiary/images/ 에 대한 요청은 실제 파일을 지정하지 않아도 /apiary/images/index.html 의 컨텐츠를 제공합니다.
PUT /apiary?website HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary?website HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
</WebsiteConfiguration>
응답 예
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
버킷에 대한 웹 사이트 구성 삭제
적절한 매개변수를 사용하여 버킷에 발행되는 DELETE 요청은 버킷에 대한 웹 사이트 구성을 제거합니다.
구문
DELETE https://{endpoint}/{bucket-name}?website # path style
DELETE https://{bucket-name}.{endpoint}?website # virtual host style
요청 예시
다음 예제는 버킷에 대한 웹 사이트 구성을 삭제합니다.
DELETE /apiary?website HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
DELETE /apiary?website HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
서버는 204 No Content로 응답합니다.
버킷의 공용 ACL 차단
적절한 매개변수를 사용하여 버킷에 발행되는 PUT 요청은 버킷에 공용 액세스 ACL을 추가하는 것을 방지합니다. 새 ACL 요청을 실패하거나 무시하도록 설정할 수 있습니다. BlockPublicAcls 는 기존 ACL에 영향을 주지 않지만 IgnorePublicAcls 는 기존 ACL을 무시합니다. 이 조작은 IAM 공용 액세스 정책에 영향을 주지 않습니다.
구문
PUT https://{endpoint}/{bucket-name}?publicAccessBlock # path style
PUT https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
페이로드 요소
요청 본문에 다음 스키마가 포함된 XML 블록이 있어야 합니다.
| 요소 | 유형 | 하위 | 상위 | 참고 |
|---|---|---|---|---|
| PublicAccessBlockConfiguration | 컨테이너 | BlockPublicAcls, IgnorePublicAcls |
|
필수 |
| BlockPublicAcls | 부울 |
|
PublicAccessBlockConfiguration |
|
| IgnorePublicAcls | 부울 |
|
PublicAccessBlockConfiguration |
|
요청 예제
PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
<PublicAccessBlockConfiguration>
<BlockPublicAcls>True</BlockPublicAcls>
<IgnorePublicAcls>True</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
응답 예
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
버킷에 대한 공용 ACL 블록 확인
적절한 매개변수를 사용하여 버킷에 발행된 GET 는 버킷에 대한 ACL 블록 구성을 리턴합니다.
구문
GET https://{endpoint}/{bucket-name}?publicAccessBlock # path style
GET https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
요청 예시
다음 예제는 버킷에 대한 공용 액세스 블록을 읽습니다.
GET /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
GET /apiary?publicAccessBlock HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 19:52:56 GMT
X-Clv-Request-Id: 7c9079b1-2833-4abc-ba10-466ef06725b2
Server: Cleversafe/3.15.2.31
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 248
<PublicAccessBlockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<BlockPublicAcls>true</BlockPublicAcls>
<IgnorePublicAcls>true</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
버킷에서 공용 ACL 블록 삭제
적절한 매개변수를 사용하여 버킷에 발행된 DELETE 는 버킷에서 공용 ACL 블록을 제거합니다.
구문
DELETE https://{endpoint}/{bucket-name}?publicAccessBlock # path style
DELETE https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
요청 예시
다음 예제는 버킷에 대한 ACL 블록을 삭제합니다.
DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
요청 예시
DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
서버는 204 No Content로 응답합니다.
백업 정책 작업
IBM Cloud® Object Storage 의 백업 정책 API는 백업 정책을 생성, 관리 및 상호작용하기 위한 작업을 제공합니다. 백업 정책은 버킷의 데이터를 백업 볼트에 백업하는 방법을 정의합니다.
권한 및 액세스 권한에 대한 자세한 내용은 백업 정책 권한을 참조하세요.
백업 정책 작성
/buckets/{bucket}/backup_policies 엔드포인트에 POST 요청을 보내면 버킷에 대한 새 백업 정책이 만들어집니다.
| 헤더 | 유형 | 필수? | 설명 |
|---|---|---|---|
MD5 |
문자열 | 아니오 | MD5 콘텐츠의 해시입니다. 제공된 경우 요청의 해시가 일치해야 합니다. |
| 경로 매개변수 | 유형 | 필수? | 설명 |
|---|---|---|---|
bucket_name |
문자열 | 예 | 백업 정책이 적용되는 버킷의 이름입니다. |
구문
POST https://{endpoint}/buckets/{bucket}/backup_policies
요청 본문
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
요청 예제
POST /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
{
"initial_retention": {
"delete_after_days": 10
},
"policy_name": "myBackupPolicy",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:2de9d5b5:12b951c9-d4e1-61a4-518c-3acc2034ba30:backup-vault:l4pi16n8rt--ufqb7.r-fw2ziy",
"backup_type": "continuous"
}
응답 예
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "pending",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
백업 정책 목록
/buckets/{bucket}/backup_policies 엔드포인트에 대한 GET 요청은 버킷에 대한 모든 백업 정책을 검색합니다.
| 경로 매개변수 | 유형 | 필수? | 설명 |
|---|---|---|---|
bucket_name |
문자열 | 예 | 백업 정책을 나열할 버킷의 이름입니다. |
구문
GET https://{endpoint}/buckets/{bucket}/backup_policies
요청 예제
GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
응답 예
[
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:8dfbcba4e6a740e3866020847e525436:backup-vault:backup-vault-name"
}
]
백업 정책 세부 정보 보기
/buckets/{bucket}/backup_policies/{policy_id} 엔드포인트에 대한 GET 요청은 특정 백업 정책에 대한 세부 정보를 검색합니다.
| 경로 매개변수 | 유형 | 필수? | 설명 |
|---|---|---|---|
bucket_name |
문자열 | 예 | 버킷 이름입니다. |
policy_id |
문자열 | 예 | 백업 정책의 ID입니다. |
구문
GET https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
요청 예제
GET /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
응답 예
{
"policy_name": "myBackupPolicy",
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name",
"initial_retention": {
"delete_after_days": 10
}
}
백업 정책 삭제
/buckets/{bucket}/backup_policies/{policy_id} 엔드포인트에 대한 DELETE 요청은 특정 백업 정책을 삭제합니다.
| 경로 매개변수 | 유형 | 필수? | 설명 |
|---|---|---|---|
bucket_name |
문자열 | 예 | 버킷 이름입니다. |
policy_id |
문자열 | 예 | 백업 정책의 ID입니다. |
구문
DELETE https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
요청 예제
DELETE /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
응답 예
HTTP/1.1 204 No Content
백업 정책 작업에 대한 자세한 내용은 백업 볼트 관리를 참조하세요.
다음 단계
자세한 정보는 오브젝트 조작 을 참조하십시오.