IBM Cloud Object Storage(ICOS)의 Expiration Rule 세부사항

소개



IBM Cloud Object Storage(ICOS)의 Expiration Rule(객체 마감) 기능이 출시되었으므로 알려드립니다.

오브젝트의 기한을 설정할 수 있으므로, 사용자는 불필요한 데이터의 삭제를 미리 스케줄 해 두면, 스토리지의 비용을 적절히 관리할 수 있게 됩니다.

미리 정의된 기간(경과 일수) 또는 특정 날짜로 오브젝트 삭제를 스케줄하기 위한 규칙을 정의할 수 있습니다.

개요는 ICOS (IBM Cloud Object Storage)의 LifeCycle 관리 - Qiita 를 봐 주세요.

특정 날짜에 만료 날짜를 설정하는 방법



2019년 6월 27일 현재 UI에서 설정할 수 없으므로 curl 명령을 사용하여 설정하는 방법을 씁니다.
버킷당 하나의 XML 파일로 관리되므로 기존 설정이 있는 경우 XML 파일에 포함시켜 요청을 던져야 합니다.
그렇지 않으면 덮어 쓰여 기존 설정이 사라집니다.

IBM Cloud 명령으로 로그인


ibmcloud login

변수 설정



환경에 맞게 변경하십시오.
export BUCKET_NAME=3minutes-ibmcloud-expire
export ENDPOINT=s3.jp-tok.cloud-object-storage.appdomain.cloud

IAM 토큰 얻기


export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | head -n 1 | awk '{print $5}'`

IBM Cloud에서 IAM 토큰을 얻는 방법 - Qiita

현재 Expiration Rule 설정 확인



이 명령으로 확인할 수 있습니다.
curl -X "GET" "https://$BUCKET_NAME.$ENDPOINT/?lifecycle" \
-H "Authorization: Bearer $ACCESS_TOKEN" 

XML 준비



이 샘플을 사용합니다.
<LifecycleConfiguration>
    <Rule>
        <ID>delete-on-a-date</ID>
    <Filter>
      <Prefix>foo/</Prefix>
    </Filter>
        <Status>Enabled</Status>
        <Expiration>
            <Date>2020-06-01T00:00:00.000Z</Date>
        </Expiration>
    </Rule>
</LifecycleConfiguration>

MD5 체크섬 준비



준비된 XML을 사용하여 필요한 헤더 정보를 미리 설정합니다.
export MD5SUM=`echo -n '<?xml version="1.0" encoding="UTF-8"?><LifecycleConfiguration><Rule><ID>delete-on-a-date</ID><Filter><Prefix>foo/</Prefix></Filter><Status>Enabled</Status><Expiration><Date>2020-06-01T00:00:00.000Z</Date></Expiration></Rule></LifecycleConfiguration>' | openssl dgst -md5 -binary | openssl enc -base64`

요청 제출



제공된 정보를 사용하여 구성 요청을 던집니다.
curl -X "PUT" "https://$BUCKET_NAME.$ENDPOINT/?lifecycle" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-MD5: $MD5SUM" \
-H "Content-Type: text/plain" \
-d '<?xml version="1.0" encoding="UTF-8"?><LifecycleConfiguration><Rule><ID>delete-on-a-date</ID><Filter><Prefix>foo/</Prefix></Filter><Status>Enabled</Status><Expiration><Date>2020-06-01T00:00:00.000Z</Date></Expiration></Rule></LifecycleConfiguration>'

설정 확인



이 명령으로 확인할 수 있습니다.
curl -X "GET" "https://$BUCKET_NAME.$ENDPOINT/?lifecycle" \
-H "Authorization: Bearer $ACCESS_TOKEN" 

UI 화면에서 확인



불행히도 화면이 표시되지 않는 것 같습니다.



개체별 만료 날짜를 확인하는 방법



Expiration Rule을 여러 개 설정하면 이 개체가 삭제되는 시기를 결정하기가 어려울 수 있습니다.
이 경우 이 방법을 사용하여 개체의 헤더 정보를 확인합니다.
어떤 규칙이 적용되고 언제 삭제되는지 확인할 수 있습니다.

객체 이름 변수 설정


export OBJECT_NAME=image.png

개체 만료 날짜


curl -I "https://$BUCKET_NAME.$ENDPOINT/$OBJECT_NAME" -H "Authorization: Bearer $ACCESS_TOKEN"
HTTP/1.1 200 OK
Date: Thu, 27 Jun 2019 10:35:40 GMT
X-Clv-Request-Id: 368b254d-a5a3-44db-95f3-7e77f7f90c65
Server: Cleversafe/3.14.4.96
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
x-amz-request-id: 368b254d-a5a3-44db-95f3-7e77f7f90c65
ETag: "3304d4b0681e60535174c9e0c446bce1"
Content-Type: image/png
Last-Modified: Thu, 27 Jun 2019 10:35:33 GMT
x-amz-expiration: expiry-date="Mon, 01 Jun 2020 00:00:00 GMT", rule-id="delete-on-a-date"
Content-Length: 216318
x-amz-expiration: expiry-date="Mon, 01 Jun 2020 00:00:00 GMT", rule-id="delete-on-a-date"되어 있는지 확인할 수 있습니다.

참고


  • Delete stale data with expiration rules - IBM Cloud Docs
  • 좋은 웹페이지 즐겨찾기