最終更新時刻または最終アクセス時刻に基づいてライフサイクルルールを作成し、バケット内のオブジェクトを定期的に指定のストレージクラスに移行したり、期限切れのオブジェクトやパートを削除したりすることで、ストレージコストを削減できます。このトピックでは、put-bucket-lifecycle コマンドを使用してバケットのライフサイクルルールを設定する方法について説明します。
注意事項
バケットのライフサイクルルールを設定するには、
oss:PutBucketLifecycle権限が必要です。詳細については、「RAM ポリシー」をご参照ください。バケットにライフサイクル構成が設定されていない場合、このコマンドは新規に作成します。既にライフサイクル構成が存在する場合は、既存の構成を上書きします。
オブジェクトとパートの有効期限を設定できます。パートとは、マルチパートアップロードでコミットされていないフラグメントのことです。
コマンド構文
ossutil api put-bucket-lifecycle --bucket value --lifecycle-configuration value [flags]パラメーター | タイプ | 説明 |
--bucket | string | バケットの名前。 |
--lifecycle-configuration | string | ライフサイクルルールのコンテナ。構成には最大 1,000 個のルールを含めることができます。 |
--allow-same-action-overlap | string | 重複するプレフィックスを許可するかどうかを指定します。有効な値:
|
put-bucket-lifecycle コマンドは PutBucketLifecycle API オペレーションを呼び出します。API パラメーターの詳細については、「PutBucketLifecycle」をご参照ください。
--lifecycle-configuration
--lifecycle-configuration オプションは、XML 構文と JSON 構文の両方をサポートしています:
XML 構文:
<LifecycleConfiguration> <Rule> <NoncurrentVersionExpiration> <NoncurrentDays>integer</NoncurrentDays> </NoncurrentVersionExpiration> <NoncurrentVersionTransition> <NoncurrentDays>integer</NoncurrentDays> <StorageClass>string</StorageClass> <IsAccessTime>boolean</IsAccessTime> <ReturnToStdWhenVisit>boolean</ReturnToStdWhenVisit> <AllowSmallFile>boolean</AllowSmallFile> </NoncurrentVersionTransition> ... <ID>string</ID> <Prefix>string</Prefix> <Status>string</Status> <Expiration> <ExpiredObjectDeleteMarker>boolean</ExpiredObjectDeleteMarker> <CreatedBeforeDate>string</CreatedBeforeDate> <Days>integer</Days> </Expiration> <Transition> <IsAccessTime>boolean</IsAccessTime> <ReturnToStdWhenVisit>boolean</ReturnToStdWhenVisit> <AllowSmallFile>boolean</AllowSmallFile> <CreatedBeforeDate>string</CreatedBeforeDate> <Days>integer</Days> <StorageClass>string</StorageClass> </Transition> ... <AbortMultipartUpload> <CreatedBeforeDate>string</CreatedBeforeDate> <Days>integer</Days> </AbortMultipartUpload> <Tag> <Key>string</Key> <Value>string</Value> </Tag> ... <Filter> <Not> <Prefix>string</Prefix> <Tag> <Key>string</Key> <Value>string</Value> </Tag> </Not> </Filter> </Rule> ... </LifecycleConfiguration>JSON 構文:
{ "Rule": [ { "Tag": [ { "Key": "string", "Value": "string" }, ... ], "Filter": { "Not": { "Prefix": "string", "Tag": { "Key": "string", "Value": "string" } } }, "Transition": [ { "CreatedBeforeDate": "string", "Days": integer, "StorageClass": "string", "IsAccessTime": boolean, "ReturnToStdWhenVisit": boolean, "AllowSmallFile": boolean }, ... ], "AbortMultipartUpload": { "CreatedBeforeDate": "string", "Days": integer }, "NoncurrentVersionExpiration": { "NoncurrentDays": integer }, "NoncurrentVersionTransition": [ { "NoncurrentDays": integer, "StorageClass": "string", "IsAccessTime": boolean, "ReturnToStdWhenVisit": boolean, "AllowSmallFile": boolean }, ... ], "ID": "string", "Prefix": "string", "Status": "string", "Expiration": { "CreatedBeforeDate": "string", "Days": integer, "ExpiredObjectDeleteMarker": boolean } }, ... ] }
詳細については、「コマンドラインオプション」をご参照ください。
例
'examplebucket' バケットにライフサイクルルールを設定します。
XML 構成ファイルを使用します。以下に
lifecycle-configuration.xmlの内容を示します:<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>rule1</ID> <Prefix>tmp/</Prefix> <Status>Enabled</Status> <Expiration> <Days>10</Days> </Expiration> <Transition> <Days>5</Days> <StorageClass>IA</StorageClass> </Transition> <AbortMultipartUpload> <Days>10</Days> </AbortMultipartUpload> </Rule> </LifecycleConfiguration>コマンド例:
ossutil api put-bucket-lifecycle --bucket examplebucket --lifecycle-configuration file://lifecycle-configuration.xmlJSON 構成ファイルを使用します。以下に
lifecycle-configuration.jsonの内容を示します:{ "Rule": { "ID": "rule1", "Prefix": "tmp/", "Status": "Enabled", "Expiration": { "Days": "10" }, "Transition": { "Days": "5", "StorageClass": "IA" }, "AbortMultipartUpload": { "Days": "10" } } }コマンド例:
ossutil api put-bucket-lifecycle --bucket examplebucket --lifecycle-configuration file://lifecycle-configuration.jsonJSON 文字列を使用して、コマンドで直接構成を指定します:
ossutil api put-bucket-lifecycle --bucket examplebucket --lifecycle-configuration "{\"Rule\":{\"ID\":\"rule1\",\"Prefix\":\"tmp/\",\"Status\":\"Enabled\",\"Expiration\":{\"Days\":\"10\"},\"Transition\":{\"Days\":\"5\",\"StorageClass\":\"IA\"},\"AbortMultipartUpload\":{\"Days\":\"10\"}}}"