Object Storage Service (OSS) にアップロードされた一部のデータは、頻繁にアクセスされない場合がありますが、コンプライアンスまたはアーカイブ要件のため、コールドストレージに保存する必要があります。 一部のビジネスシナリオでは、不要になったデータを自動的に削除することができます。 この目標を達成するには、lifecycleコマンドを実行して、データの最終変更時刻に基づいてライフサイクルルールを作成します。 バケットに保存されたデータの最終アクセス時間に基づいてライフサイクルルールを設定し、ホットデータとコールドデータの階層化ストレージを実装し、ストレージコストを削減できます。 このようなライフサイクルルールを設定すると、OSSはバケット内のオブジェクトのアクセスパターンを監視し、アクセスパターンに基づいてコールドデータを識別し、指定されたストレージクラスにコールドデータを自動的に移動します。
使用上の注意
ライフサイクルルールを作成または変更するには、
oss:PutBucketLifecycle
権限が必要です。 ライフサイクルルールを照会するには、oss:GetBucketLifecycle
権限が必要です。 ライフサイクルルールを削除するには、oss:DeleteBucketLifecycle
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。オブジェクトの最終変更時刻または最終アクセス時刻に基づいてライフサイクルルールを設定する前に、この機能に慣れていることを確認してください。 詳細については、「最終変更時刻に基づくライフサイクルルール」および「最終アクセス時刻に基づくライフサイクルルール」をご参照ください。
このトピックでは、64ビットLinuxシステムに基づくサンプルコマンドラインを提供します。 他のシステムのために、取り替えて下さい./ossutil64対応するバイナリ名を持つコマンドで 詳細は、「ossutilコマンドリファレンス」をご参照ください。
ライフサイクルルールの詳細については、「概要」をご参照ください。
ライフサイクルルールを使用して、CloudBoxバケットからオブジェクトを削除できます。 ライフサイクルルールを使用して、CloudBoxバケット内のオブジェクトのストレージクラスを変更することはできません。
ライフサイクルルールの作成または変更
次の手順を実行して、ライフサイクルルールを作成または変更できます。
ローカルファイルを作成し、ライフサイクルルールをXML形式でファイルに設定します。
ossutilを使用して、ローカルファイルからライフサイクル設定を読み取り、指定されたバケットに設定を追加します。
コマンド構文
./ossutil64ライフサイクル -- メソッドput oss:// bucketname local_xml_file
次の表に、構文のパラメーターを示します。
パラメーター
説明
bucketname
ライフサイクルルールを作成または変更するバケットの名前。
local_xml_ファイル
ライフサイクルルールが設定されているローカルファイルの名前。 例:
localfile.xml
例
重要バケットに複数のライフサイクルルールを作成できます。 各ルールは、一意のIDによって識別される。 作成するライフサイクルルールのIDが既存のライフサイクルルールのIDと同じ場合、HTTPステータスコード409が返されます。
ローカルコンピューターに
localfile.xml
という名前のファイルを作成し、ビジネス要件に基づいてライフサイクルルールをファイルに書き込みます。ライフサイクル設定のサンプル:
例1
examplebucketバケットの次のライフサイクル設定には、2つのライフサイクルルールが含まれています。 最初のライフサイクルルールは、バケット内のすべてのオブジェクト (Prefixが空の値に設定されている) に適用され、オブジェクトが最後に変更されてから365日後に一致するオブジェクトを削除します。 2番目のライフサイクルルールは、オブジェクトが最後に変更されてから30日後に、名前に "test/" プレフィックスが含まれるオブジェクトをアーカイブストレージクラスに移動します。
ライフサイクルルールでサポートされているストレージクラスについては、「オブジェクトのストレージクラスを自動的に変換するライフサイクルルールの設定」をご参照ください。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule1</ID> <Prefix></Prefix> <Status>Enabled</Status> <Expiration> <日> 365</日> </Expiration> </Rule> <Rule> <ID>test-rule2</ID> <Prefix>test/</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>Archive</StorageClass> </Transition> </ルール> </LifecycleConfiguration>
例2
次のライフサイクルルールは、examplebucketバケット内のすべてのオブジェクト (Prefixが空の値に設定されている) に適用され、最終変更時刻が12月、30日、2019日より前の一致するオブジェクトに有効期限が切れます。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule0</ID> <Prefix></Prefix> <Status>Enabled</Status> <Expiration> <CreatedBeforeDate>2019-12-30T00:00:00.000Z</CreatedBeforeDate> </Expiration> </ルール> </LifecycleConfiguration>
例3
次のライフサイクルルールでは、バージョン管理が有効なバケットexamplebucketのオブジェクトが最後に変更されてから10日後に低頻度アクセス (IA) に移動され、非現行バージョンが非現行バージョンになってから60日後にアーカイブに移動され、非現行バージョンになってから90日後に削除されることを指定します。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule3</ID> <Prefix></Prefix> <Status>Enabled</Status> <Transition> <Days>10</Days> <StorageClass>IA</StorageClass> </Transition> <NoncurrentVersionTransition> <NoncurrentDays>60</NoncurrentDays> <StorageClass>Archive</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NoncurrentDays>90</NoncurrentDays> </NoncurrentVersionExpiration> </ルール> </LifecycleConfiguration>
例4
次のライフサイクルルールでは、名前にデータ /プレフィックスが含まれているオブジェクトは、オブジェクトが最後にアクセスされてから200日後にIAに移動され、再度アクセスされた後もIAに残るように指定します。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule4</ID> <Prefix>data/</Prefix> <Status>Enabled</Status> <Transition> <日> 200</日> <StorageClass>IA</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> </ルール> </LifecycleConfiguration>
次のコマンドを実行して、examplebucketバケットにライフサイクル設定を追加します。
./ossutil64ライフサイクル -- メソッドput oss:// examplebucket localfile.xml
次のサンプル出力は、ライフサイクル設定が追加されたことを示しています。
0.299514経過
ライフサイクルルールの照会
コマンド構文
./ossutil64ライフサイクル -- メソッドget oss:// bucketname [local_xml_file]
次の表に、構文のパラメーターを示します。
パラメーター
説明
bucketname
ライフサイクルルールを照会するバケットの名前。
local_xml_ファイル
ライフサイクル設定を保存するローカルファイルの名前。 例:
localfile.xml
このパラメーターを設定しない場合、ライフサイクルルールは画面に直接表示されます。例
次のコマンドを実行して、examplebucketバケットのライフサイクルルールを照会します。
./ossutil64ライフサイクル -- メソッドget oss:// examplebucket localfile.xml
次のサンプル出力は、ライフサイクル設定がクエリされ、localfile.xmlファイルに書き込まれることを示しています。
0.212407経過
ライフサイクルルールの削除
コマンド構文
./ossutil64ライフサイクル -- メソッドdelete oss:// bucketname
例
次のコマンドを実行して、examplebucketバケットのライフサイクルルールを削除します。
./ossutil64ライフサイクル -- メソッドdelete oss:// examplebucket
次のサンプル出力は、examplebucketバケットのライフサイクルルールが削除されたことを示しています。
0.530750経過
一般的なオプション
ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKey secretを指定します。
たとえば、次のコマンドを実行して、中国 (杭州) リージョンにあり、別のAlibaba Cloudアカウントが所有するexamplebucketという名前のバケットのライフサイクルルールを作成できます。
./ossutil64ライフサイクル -- メソッドput oss:// examplebucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****
共通オプションの詳細については、「共通オプション」をご参照ください。