ライフサイクルの設定にはXML記述方法を使用します。1つまたは複数のライフサイクルルールを設定することが可能です。基本構造は次のとおりです。
<LifecycleConfiguration>
<Rule>
<ID>**your lifecycle name**</ID>
<Status>Enabled</Status>
<Filter>
<And>
<Prefix>projectA/</Prefix>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
</And>
</Filter>
**transition/expiration actions**
</Rule>
<Rule>
...
</Rule>
</LifecycleConfiguration>
各ルールには次の内容が含まれます。
空のフィルタリング条件を指定すると、バケット内の全オブジェクトに適用されます。
<LifecycleConfiguration>
<Rule>
<Filter>
</Filter>
<Status>Enabled</Status>
**transition/expiration actions**
</Rule>
</LifecycleConfiguration>
オブジェクトのプレフィックスを指定することで、プレフィックスの記述に該当する一部のオブジェクトグループに対してアクションを実行することができます。例えば、logs/をプレフィックスとするすべてのオブジェクトを設定する場合は次のようになります。
<LifecycleConfiguration>
<Rule>
<Filter>
<Prefix>logs/</Prefix>
</Filter>
<Status>Enabled</Status>
**transition/expiration actions**
</Rule>
</LifecycleConfiguration>
あるオブジェクトキーに該当するkeyおよびvalueをフィルタリング条件として指定し、特定のタグのオブジェクトに対しアクションを実行します。例えば、タグのkey=typeおよびvalue=imageをフィルタリング条件としてオブジェクトを設定する場合は次のようになります。
<LifecycleConfiguration>
<Rule>
<Filter>
<Tag>
<Key>type</Key>
<Value>image</Value>
</Tag>
</Filter>
<Status>Enabled</Status>
**transition/expiration actions**
</Rule>
</LifecycleConfiguration>
Tencent CloudのCloud Object Storage(COS)は、ANDロジックによる複数のフィルタリング条件の併用をサポートしています。例えば、logs/をプレフィックスとして設定すると同時に、オブジェクトタグのkey=typeおよびvalue=imageをフィルタリング条件としてオブジェクトを設定する場合は次のようになります。
<LifecycleConfiguration>
<Rule>
<Filter>
<And>
<Prefix>logs/</Prefix>
<Tag>
<Key>type</Key>
<Value>image</Value>
</Tag>
</And>
</Filter>
<Status>Enabled</Status>
**transition/expiration actions**
</Rule>
</LifecycleConfiguration>
ライフサイクルルールにおいて、条件に該当するオブジェクトのグループに対し、1つまたは複数のアクションを実行することができます。
Transitionアクションを指定すると、オブジェクトをあるストレージタイプから別のストレージタイプに切り替えることができます。バケットでバージョン管理を有効にしている場合は、現在のバージョンに対してのみアクションが実行されます。最短のTransition設定時間は0日です。例えば、30日後にアーカイブストレージに移行するよう設定する場合は次のようになります。
<Transition>
<StorageClass>ARCHIVE</StorageClass>
<Days>30</Days>
</Transition>
Expirationアクションを指定すると、ルールに該当するオブジェクトに対し期限切れ後に削除するアクションを行うことができます。バケットのバージョン管理を有効にしていない場合は、オブジェクトが完全に削除されます。バケットのバージョン管理を有効にしている場合は、期限切れのオブジェクトにDeleteMarkerを追加し、それを現在のバージョンとして設定します。例えば、30日後にオブジェクトを削除するよう設定する場合は次のようになります。
<Expiration>
<Days>30</Days>
</Expiration>
注意:同一のライフサイクルルール内で、指定したオブジェクトタグの設定とアップロードが完了していないファイルフラグメントのクリーンアップを同時に行うことはサポートしていません。
AbortIncompleteMultipartUploadアクションを指定すると、マルチパートアップロードの指定されたUploadIdタスクを一定期間保持した後に削除することを許可し、それについてはアップロード再開または検索可能な特性の提供も行われないようにすることができます。例えば、未完了のマルチパートアップロードタスクを7日後に消去するよう設定する場合は次のようになります。
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>7</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
バージョン管理を有効にしているバケットでは、切り替えは最新バージョンに対してのみ実行され、期限切れ操作は削除マーカーの追加だけとなります。そのため、COSでは現在のバージョンではないオブジェクトに対して、次のような操作を提供しています。
NoncurrentVersionTransitionを指定すると、現在のバージョンではないオブジェクトを指定の時間に別のストレージタイプに切り替えることができます。例えば、過去のバージョンを30日後にアーカイブストレージに移行するよう設定する場合は次のようになります。
<NoncurrentVersionTransition>
<StorageClass>ARCHIVE</StorageClass>
<Days>30</Days>
</NoncurrentVersionTransition>
NoncurrentVersionExpirationを指定すると、現在のバージョンではないオブジェクトを指定の時間に期限切れとして削除することができます。例えば、過去のバージョンを30日後に削除するよう設定する場合は次のようになります。
<NoncurrentVersionExpiration>
<Days>30</Days>
</NoncurrentVersionExpiration>
ExpiredObjectDeleteMarkerの指定は余分な削除マーカーを消去するために用います。入力可能な値はtrueまたはfalseです。このオプションの発効は、期限切れとなった過去のバージョンを消去する動作(NoncurrentVersionExpiration)によってトリガーされます。この機能を有効にすると、ライフサイクルによってオブジェクトの最後の過去バージョンが削除された時点で、余分な複数の削除マーカーが自動的に消去されます。
具体的には次のようになります。期限切れとなった過去のバージョンを消去する動作(NoncurrentVersionExpiration)が発効した時点で、
<ExpiredObjectDeleteMarker>
<Days>true|false</Days>
</ExpiredObjectDeleteMarker>
Daysを使用する日数の計算は、 オブジェクトの最終変更時間に基づいて行われます。
Dateを使用して日付を指定すると、特定の日付になった時点で、フィルタリング条件に該当するすべてのオブジェクトに対しこのアクションが実行されます。現時点ではGMT+8タイムゾーンの、0時に設定するISO8601形式の時間のみサポートしています。
例えば、2018年1月1日の場合、2018-01-01T00:00:00+08:00と記述します。
この記事はお役に立ちましたか?