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