すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:最終変更時刻に基づいてライフサイクルルールを設定し、ストレージコストを削減

最終更新日:Jun 12, 2024

ビジネス要件に基づいて、コンプライアンス要件やアーカイブ要件のために、アクセス頻度の低いデータをObject Storage Service (OSS) バケットに長期間保持するか、不要になったデータを一括して削除する必要がある場合があります。 最終変更時刻に基づいてライフサイクルルールを設定し、コールドデータを適切なストレージクラスに移動したり、オブジェクトを削除してストレージコストを削減したりできます。

シナリオ

  • 医療機関はOSSに医療記録を保存します。 これらのオブジェクトは、アップロード後6か月以内にアクセスされることがあり、その後はほとんどアクセスされません。 この場合、ライフサイクルルールを設定して、オブジェクトがアップロードされてから180日後にオブジェクトのストレージクラスをアーカイブに変換できます。

  • 企業は、顧客サービスホットラインの通話記録をOSSに保存します。 これらのオブジェクトは、最初の2か月以内に頻繁にアクセスされ、2か月後にアクセスされることもあり、6か月後にはほとんどアクセスされません。 2年後、オブジェクトを保存する必要がなくなりました。 この場合、ライフサイクルルールを設定して、これらのオブジェクトのストレージクラスをアップロードから60日後に低頻度アクセス (IA) に、アップロードから180日後にアーカイブに変換し、アップロードから730日後に削除できます。

  • バケットからすべてのオブジェクトを削除します。 OSSでは、一度に最大1,000個のオブジェクトを手動で削除できます。 この場合、次の日にバケット内のすべてのオブジェクトを削除するようにライフサイクルルールを設定できます。

ストレージクラスの詳細については、「概要」をご参照ください。

制限事項

マッチ条件

ライフサイクルルールは、プレフィックスとタグに基づく照合のみをサポートします。 ワイルドカードマッチング、サフィックスマッチング、および正規表現マッチングはサポートされていません。

部品ライフサイクル

名前が重複するプレフィックスを持つオブジェクトに対して、部品ライフサイクルポリシーを含む2つ以上のライフサイクルルールを設定することはできません。 例:

  • 例 1

    バケットの部品ポリシーを含むライフサイクルルールを設定する場合、バケット内のオブジェクトの部品ポリシーを含む別のライフサイクルルールを設定することはできません。

  • 例 2

    バケット内のdir1プレフィックスを含むオブジェクトの部品ポリシーを含むライフサイクルルールを設定する場合、dir1/dir2など、名前に重複するプレフィックスを含むオブジェクトの部品ポリシーを含む別のライフサイクルルールを設定することはできません。

ストレージクラスの変換

  • 追加可能オブジェクトのストレージクラスをコールドアーカイブまたはディープコールドアーカイブに変換するライフサイクルルールを設定することはできません。

  • ライフサイクルルールを設定して、シンボリックリンクのストレージクラスをIA、アーカイブ、コールドアーカイブ、またはディープコールドアーカイブに変換することはできません。

使用上の注意

ライフサイクルルールの数

バケットには最大1,000のライフサイクルルールを設定できます。 ライフサイクルルールには、最終変更時刻に基づくポリシーと最終アクセス時刻に基づくポリシーの両方を含めることができます。

上書きセマンティクス

PutBucketLifecycle操作は、バケットのライフサイクルルールの既存の設定を上書きします。 たとえば、Rule1という名前のライフサイクルルールがバケットに設定されていて、そのバケットにRule2という名前の別のライフサイクルルールを設定する場合は、次の操作を実行します。

  • GetBucketLifecycle操作を呼び出してRule1を照会します。

  • Rule1とRule2の両方をライフサイクルルール設定に追加します。

  • PutBucketLifecycle操作を呼び出して、バケットのRule1とRule2を作成します。

適用時刻

OSSは、ルールが作成されてから24時間以内にライフサイクルルールを読み込みます。 ライフサイクルルールがロードされた後、OSSは毎日08:00:00 (UTC + 8) にルールを実行します。

オブジェクトの最終変更時刻とライフサイクルルールの実行時間の間隔は、24時間より長くする必要があります。 たとえば、アップロードしてから1日後にオブジェクトを削除するようにバケットのライフサイクルルールを設定した場合、7月20日2020日にアップロードされたオブジェクトは、オブジェクトがアップロードされた特定の時間に基づいて異なる日付で削除されます。

  • 7月20日の08:00:00 (UTC + 8) より前にアップロードされた2020は、2020年7月21日の08:00:00 (UTC + 8) から2020年7月22日の08:00:00 (UTC + 8) まで削除されます。

  • 7月20日の08:00:00 (UTC + 8) 以降にアップロードされた2020は、2020年7月22日の08:00:00 (UTC + 8) から2020年7月23日の08:00:00 (UTC + 8) まで削除されます。

重要

ライフサイクルルールを更新すると、その日にルールに基づいて実行される予定のタスクが中断されます。 ライフサイクルルールを頻繁に更新しないことを推奨します。

完了時間

タグを含まないライフサイクルルール

  • タグに基づいていないライフサイクルルールの場合、オブジェクトの削除、ストレージクラスの変換、部品の有効期限など、最大10億のライフサイクル管理アクションを、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (ウランカブ) 、中国 (深セン) 、シンガポールで24時間以内に完了できます。 ライフサイクルルールに基づくライフサイクル管理アクションの数が10億を超える場合、アクションの完了に必要な時間は24時間を超える可能性があります。

  • タグに基づいていないライフサイクルルールの場合、他のリージョンで24時間以内に最大100万のライフサイクル管理アクションを完了できます。 ライフサイクルルールに基づくライフサイクル管理アクションの数が100万を超える場合、アクションの完了に必要な時間は24時間を超える可能性があります。

タグを含むライフサイクルルール

  • タグに基づくライフサイクルルールの場合、オブジェクトの削除、ストレージクラスの変換、部品の有効期限など、最大500万件のライフサイクル管理アクションを、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (ウランカブ) 、中国 (深セン) 、シンガポールで24時間以内に完了できます。 ライフサイクルルールに基づくライフサイクル管理アクションの数が500万を超える場合、操作の実行に必要な時間は24時間を超える可能性があります。

  • タグに基づくライフサイクルルールの場合、他のリージョンで24時間以内に最大50万のライフサイクル管理アクションを完了できます。 ライフサイクルルールに基づくライフサイクル管理アクションの数が50万を超える場合、アクションの完了に必要な時間は24時間を超える可能性があります。

説明

バケットのバージョン管理が有効になっている場合、バケット内の各オブジェクトバージョンに対するライフサイクル管理アクションは、該当する制限にカウントされます。

課金ルール

ライフサイクルルールを使用してオブジェクトストレージクラスを変換したり、オブジェクトを削除したりすると、リクエスト料金とストレージ料金が請求される場合があります。 詳細については、「ライフサイクルルールに関する料金」をご参照ください。

OSS-HDFSが有効になっているバケットのライフサイクルルール

  • OSSオブジェクトのライフサイクルルール

    OSS-HDFSが有効になっているバケット内のすべてのオブジェクトと一致するように最終変更時刻に基づいてライフサイクルルールを設定または変更するには、NOT要素を使用して、. dlsdata /ディレクトリに移動します。 これにより、ライフサイクルルールによるオブジェクトの削除やストレージクラスの変換アクションがOSS-HDFSデータに適用され、OSS-HDFSデータの読み取りおよび書き込み操作に影響を与えることがなくなります。

    p571593..jpeg

  • Hadoop分散ファイルシステム (HDFS) ファイルのライフサイクルルール

    たとえば、標準ストレージクラスで頻繁にアクセスされるオブジェクトと、IA、アーカイブ、またはコールドアーカイブストレージクラスで頻繁にアクセスされないオブジェクトを格納します。 この場合、自動ストレージ階層化機能を使用するようにライフサイクルルールを設定できます。 詳細については、「OSS-HDFSの自動ストレージ階層化」をご参照ください。

ライフサイクルルール要素

マッチ条件

  • プレフィックスによる一致: オブジェクトとパーツはプレフィックスによって一致します。 複数のライフサイクルルールを作成して、異なるプレフィックスを指定できます。 各プレフィックスは一意である必要があります。 プレフィックスの命名規則は、オブジェクトの命名規則と同じです。 詳細については、「オブジェクト」をご参照ください。

  • タグによる一致: オブジェクトはタグキーとタグ値によって一致します。 1つのライフサイクルルールで複数のタグを指定できます。 ライフサイクルルールは、指定されたタグを持つすべてのオブジェクトに適用されます。OSSライフサイクルルールは、タグによってパーツを照合できません。

    説明

    詳細については、「オブジェクトへのタグの追加」をご参照ください。

  • プレフィックスとタグによる一致: オブジェクトはプレフィックスとタグによって一致します。

  • バケットごとに一致: バケットに格納されているすべてのオブジェクトとパーツが一致します。

  • NOT要素: NOT要素は、特定のライフサイクルルールを有効にしたくないオブジェクトの名前プレフィックスとタグを指定します。 NOT要素の設定方法の詳細については、「NOT」をご参照ください。

    重要

    ライフサイクルルールに設定できるNOT要素は1つだけです。 NOT要素にはプレフィックスを1つだけ指定する必要があります。 さらに、ライフサイクルルールのNOT要素に最大1つのタグを設定できます。

オブジェクトの有効期間または有効期限と期限切れのオブジェクトに対するアクション

  • 有効期間: バージョン化されていないバケット内のオブジェクトとバージョン化されたバケット内のオブジェクトの現在のバージョンの有効期間を指定します。 オブジェクトの有効期限が切れた後にOSSで実行するアクションを指定します。 特定のライフサイクルルールに一致するオブジェクトは、オブジェクトが最後に変更された後、指定された有効期間にわたって保持されます。 指定されたアクションは、有効期限が切れるとこれらのオブジェクトに対して実行されます。

  • 有効期限: バージョン化されていないバケット内のオブジェクトとバージョン化されたバケット内のオブジェクトの現在のバージョンの有効期限を指定します。 有効期限が切れた後にこれらのオブジェクトに対してOSSで実行するアクションを指定します。 この日付より前に最後に変更されたすべてのオブジェクトは有効期限が切れ、有効期限が切れた後、これらのオブジェクトに対して指定されたアクションが実行されます。

  • 以前のバージョンのオブジェクトの有効期間: 以前のバージョンのオブジェクトの有効期間と、以前のバージョンの有効期限が切れた後にOSSで実行するアクションを指定します。 特定のライフサイクルルールに一致するオブジェクトは、オブジェクトが以前のバージョンになった後、指定された有効期間保持されます。 指定されたアクションは、有効期限が切れるとこれらのオブジェクトに対して実行されます。

ライフサイクルルールを設定して、期限切れオブジェクトのストレージクラスを変換したり、期限切れオブジェクトを削除したりできます。 詳細については、「構成要素」をご参照ください。

部品の有効期間または有効期限と期限切れ部品のアクション

  • 有効期間: パーツの有効期間を指定します。 特定のライフサイクルルールに一致する部品は、指定された有効期間内に保持され、部品の有効期限が切れた後に削除されます。

  • 有効期限: パーツの有効期限を指定します。 有効期限前に最後に変更されたパーツは削除されます。

マッチングロジック

異なるプレフィックス

たとえば、次のオブジェクトはバケットに保存されます。

logs/programl/log1.txt
logs/program2/log2.txt
logs/program3/log3.txt
doc/readme.txt 

ライフサイクルルールで指定されたプレフィックスがlogs /の場合、ライフサイクルルールは、名前がlogs /プレフィックスを含む最初の3つのオブジェクトに対して有効になります。 ライフサイクルルールで指定されたプレフィックスがdoc/readme.txtの場合、ライフサイクルルールはdoc/readme.txtオブジェクトに対してのみ有効になります。

ライフサイクルルールに一致するオブジェクトに対してGetObjectまたはHeadObject操作を実行すると、x-oss-expirationヘッダーがレスポンスに含まれます。 ヘッダーには、オブジェクトの有効期限を示すexpiry-dateと、一致したライフサイクルルールのidを示すrule-IDの2つのパラメーターが含まれます。

複数のライフサイクルルールで同じプレフィックスとタグを指定

同じ名前のプレフィックスとタグを持つオブジェクトが同時に複数のライフサイクルルールに一致する場合、オブジェクトを削除するように設定されたライフサイクルルールは、オブジェクトのストレージクラスを変換するように設定されたライフサイクルルールよりも優先されます。 たとえば、次の表に示すrule1とrule2の両方が、名前にabcプレフィックスが含まれ、a=1タグが付いているオブジェクトに対して有効になります。 rule1は、最後に変更されてから20日後に一致するオブジェクトを削除するように設定されます。 rule2は、最後に変更されてから20日後に、一致したオブジェクトのストレージクラスをアーカイブに変換するように設定されます。 rule1とrule2が同時にバケットに設定されている場合、rule2は有効になりません。

ルール

プレフィックス

タグ

アクション

rule1

こんにちは

a=1

最後に変更されてから20日後に一致したオブジェクトを削除します。

rule2

こんにちは

a=1

一致したオブジェクトのストレージクラスを、最後に変更されてから20日後にアーカイブに変換します。

重複するプレフィックスと複数のライフサイクルルールで指定された同じタグ

たとえば、次の表に示すrule1は、a=1タグを持つオブジェクトのストレージクラスを、最後に変更されてから10日後にIAに変換します。 次の表に示すrule2は、名前にabcプレフィックスが含まれ、最後に変更されてから120日後にa=1タグが付いているオブジェクトを削除します。

ルール

プレフィックス

タグ

アクション

rule1

-

a=1

一致したオブジェクトのストレージクラスを最後に変更してから10日後にIAに変換します。

rule2

こんにちは

a=1

最後に変更されてから120日後に一致するオブジェクトを削除します。

次の表で説明するrule3は、a=1タグを持つオブジェクトのストレージクラスを、最後に変更されてから20日後にアーカイブに変換します。 次の表に示すrule4は、名前にabcプレフィックスが含まれ、a=1タグが付いているオブジェクトのストレージクラスを、最後に変更されてから30日後にIAに変換します。 rule3とrule4が同時にバケットに設定されている場合、名前にabcプレフィックスが含まれ、a=1タグが付いているオブジェクトのストレージクラスは、rule3に基づいて最後に変更されてから20日後にアーカイブに変換されます。 アーカイブオブジェクトをIAオブジェクトに変換することはできません。 したがって、rule4は有効になりません。

ルール

プレフィックス

タグ

アクション

rule3

-

a=1

一致したオブジェクトのストレージクラスを、最後に変更されてから20日後にアーカイブに変換します。

rule4

こんにちは

a=1

一致したオブジェクトのストレージクラスを最後に変更してから30日後にIAに変換します。

ではない

バケットに複数のライフサイクルルールを設定し、ライフサイクルルールの1つにNOT要素が含まれている場合、NOT要素を含むルールで指定されたアクションは、ルールに一致するオブジェクトに対してのみ実行されます。 例:

  • 例 1

    • ライフサイクルルールは、オブジェクトが最後に変更されてから100日後にexamplebucketバケット内のdir/ prefixを名前に含むオブジェクトを削除するように設定されています。

    • NOT要素を含む別のライフサイクルルールは、オブジェクトが最後に変更されてから50日後にexamplebucketバケット内の名前にdir /プレフィックスが含まれていないすべてのオブジェクトを削除するように設定されています。

    次の表に、前述のライフサイクルルールが適用された後のオブジェクトに対するアクションを示します。

    オブジェクト

    Action

    名前にdir /プレフィックスが含まれるオブジェクト

    最後に変更されてから100日後に一致するオブジェクトを削除します。

    名前にdir /プレフィックスが含まれないオブジェクト

    最後に変更されてから50日後に一致したオブジェクトを削除します。

  • 例 2

    • NOT要素を含むライフサイクルルールは、オブジェクトが最後に変更されてから30日後にexamplebucketバケット内のTagA (key1:value1) を持たないすべてのオブジェクトを削除するように設定されています。

    • 別のライフサイクルルールは、オブジェクトが最後に変更されてから50日後にexamplebucketバケット内のTagB (key2:value2) を持つオブジェクトを削除するように設定されています。

    次の表に、前述のライフサイクルルールが適用された後のオブジェクトに対するアクションを示します。

    オブジェクト

    Action

    TagAまたはTagBを持たないすべてのオブジェクト

    最後に変更されてから30日後に一致したオブジェクトを削除します。

    TagAのみを持つオブジェクト

    オブジェクトを保持します。

    TagBのみを持つオブジェクト

    最後に変更されてから30日後に一致したオブジェクトを削除します。

    TagAとTagBを持つオブジェクト

    最後に変更されてから50日後に一致したオブジェクトを削除します。

手順

OSSコンソールの使用

  1. にログインします。OSSコンソール.

  2. 左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。

  3. 左側のナビゲーションツリーで、データ管理 > ライフサイクル.

  4. On theライフサイクルページをクリックします。ルールの作成.

    説明

    最終変更時刻に基づいてライフサイクルルールを作成する場合は、ライフサイクル ページで [アクセストラッキングの有効化] をオンにする必要はありません。 アクセス追跡には追加料金がかかります。 最終アクセス時刻に基づいてライフサイクルルールを作成するには、アクセス追跡を有効にする必要があります。 詳細については、「最終アクセス時間に基づくライフサイクルルール」をご参照ください。

  5. では、ルールの作成パネル、次のパラメータを設定します。

    • 未バージョン化バケット

      セクション

      パラメーター

      説明

      基本設定

      ステータス

      ライフサイクルルールのステータスを指定します。 有効な値: 開始 および [無効]

      • ライフサイクルルールを有効にすると、ライフサイクルルールに基づいてオブジェクトのストレージクラスが変換されるか、オブジェクトが削除されます。

      • ライフサイクルルールを無効にすると、ライフサイクルルールのライフサイクルタスクが中断されます。

      ポリシー

      ライフサイクルルールを有効にするオブジェクトを指定します。 オブジェクトプレフィックス または バケット全体に適用 を選択できます。

      説明

      指定されたプレフィックスを持つオブジェクトを選択した場合、完全なプレフィックスを指定する必要があります。 たとえば、名前にsrc/dir1プレフィックスが含まれるオブジェクトにライフサイクルルールを適用する場合は、src/dir1と入力します。 dir1のみを入力した場合、ライフサイクルルールは必要な効果を生成しません。

      重複するプレフィックスを許可

      重複するプレフィックスを許可するかどうかを指定します。 デフォルトでは、各ライフサイクルルールのプレフィックスが重複するかどうかをチェックします。 たとえば、バケットに既存のライフサイクルルール (ルール1) があり、重複するプレフィックスを含む別のライフサイクルルール (ルール2) を設定する場合:

      • ルール1

        オブジェクトが最後に変更されてから180日後に、名前にdir1/ プレフィックスが含まれるすべてのオブジェクトをバケット内で削除します。

      • ルール2

        バケット内のdir1/dir2/ プレフィックスを名前に含むすべてのオブジェクトのストレージクラスを、オブジェクトが最後に変更されてから30日後にIAに変換し、最後に変更されてから60日後にオブジェクトを削除します。

      このチェックボックスをオンにしないと、dir1/dir2/ ディレクトリ内のオブジェクトが2つのライフサイクルルールに一致することを検出し、ルール2の作成を拒否し、[同じアクションタイプの有効期限] を返します。 エラーメッセージ。

      このチェックボックスをオンにすると、オブジェクトが最後に変更されてから30日後にdir1/dir2/ ディレクトリ内のオブジェクトのストレージクラスをIAに変換し、最後に変更されてから60日後に削除するルール2が作成されます。 dir1/ ディレクトリ内の他のオブジェクトは、オブジェクトが最後に変更されてから180日後に削除されます。

      説明

      バケットに複数のライフサイクルルールがあり、そのうちの1つがバケット全体に適用される場合、ライフサイクルルールには重複するプレフィックスがあります。

      接頭辞

      ライフサイクルルールを有効にするオブジェクトの名前にプレフィックスを指定します。

      • プレフィックスをimgに設定した場合、imgtest.pngやimg/example.jpgなど、名前にimgプレフィックスが含まれるすべてのオブジェクトがライフサイクルルールと一致します。

      • プレフィックスをimg/ に設定した場合、img/example.jpgやimg/test.jpgなど、名前にimg /プレフィックスが含まれるすべてのオブジェクトがライフサイクルルールと一致します。

      タグ

      タグを指定します。 このルールは、指定されたタグを持つオブジェクトに対してのみ有効です。

      • たとえば、ライフサイクルルールでタグを指定し、ライフサイクルルールでプレフィックスを指定しない場合、ライフサイクルルールはバケットにタグを持つすべてのオブジェクトに適用されます。

      • ライフサイクルルールでa=1タグとimgプレフィックスを指定した場合、ライフサイクルルールは、オブジェクト名にimgプレフィックスがあり、バケットにa=1タグがあるすべてのオブジェクトに適用されます。

      詳細については、「オブジェクトへのタグの追加」をご参照ください。

      ではない

      指定された名前プレフィックスとタグを持つオブジェクトに対してライフサイクルルールが有効にならないように指定します。

      重要
      • NOTをオンにすると、ライフサイクルルールにPrefixパラメーターとTagパラメーターの少なくとも1つを指定する必要があります。

      • NOTパラメーターに指定されたタグのキーは、タグパラメーターに指定されたキーと同じにすることはできません。

      • NOTをオンにすると、ライフサイクルルールに部品の有効期限ポリシーを含めることはできません。

      ファイルサイズ

      ライフサイクルルールを有効にするオブジェクトのサイズを指定します。

      • 最小サイズ: 指定されたサイズより大きいサイズのオブジェクトに対してのみライフサイクルルールが有効になるように指定します。 オブジェクトの最小サイズは、0 Bより大きく5テラバイト未満で指定できます。

      • 最大サイズ: 指定されたサイズより小さいサイズのオブジェクトに対してのみライフサイクルルールが有効になるように指定します。 オブジェクトの最大サイズは、0 Bより大きく、5テラバイト以下で指定できます。

      重要

      同じライフサイクルルールで最小オブジェクトサイズと最大オブジェクトサイズを指定する場合は、次の項目に注意してください。

      • 最大オブジェクトサイズは、最小オブジェクトサイズより大きくなければなりません。

      • ライフサイクルルールに部品ポリシーを含めることはできません。

      • 削除マーカーを削除するポリシーを含めることはできません。

      オブジェクトに対するポリシー

      ファイル時間ポリシー

      オブジェクトの有効期限ポリシーを指定します。 [有効期間 (日)][有効期限] 、または 有効になっていません を選択できます。 有効になっていません を選択した場合、オブジェクトの有効期限ポリシーは設定されません。

      ライフサイクルベースのルール

      ライフサイクルルールを設定して、オブジェクトのストレージクラスを変換するか、期限切れのオブジェクトを削除します。 IAアーカイブコールドアーカイブディープコールドアーカイブ、またはオブジェクトの削除を選択できます。

      たとえば、ファイル時間ポリシー有効期限を選択し、有効期限として9月24日2023を指定し、オブジェクトの削除 (復元できません) を指定します。 この場合、9月24日2023前に最後に変更されたオブジェクトは自動的に削除され、復元できません。

      フラグメントに対するポリシー

      フラグメント期限切れポリシー

      部品ポリシーを指定します。 タグパラメーターも設定した場合、このパラメーターは使用できません。 [有効期間 (日)][有効期限] 、または 有効になっていません を選択できます。 有効になっていません を選択した場合、部品ポリシーは設定されません。

      重要

      ライフサイクルルールには、オブジェクト有効期限ポリシーと部品有効期限ポリシーの少なくとも1つが含まれている必要があります。

      フラグメントに対するルール

      パーツの有効期限を指定します。 有効期間または有効期限を指定できます。 期限切れのパーツは自動的に削除され、復元できません。

    • Versionedバケット

      基本設定 セクションと フラグメントに対するポリシー セクションのパラメーターを、バージョン化されていないバケットのパラメーターと同じ方法で設定します。 次の表では、バージョン化されていないバケットに設定したパラメーターとは異なるパラメーターのみを説明します。

      セクション

      パラメーター

      説明

      現在のバージョンのポリシー

      削除マーカーの削除

      バケットがバージョン管理されている場合、オブジェクトライフサイクルパラメーターに [削除マーカー] オプションが追加されます。 その他のパラメーターは、バージョン化されていないバケットに対して設定できるパラメーターと同じです。

      削除マーカーの削除を選択した場合、オブジェクトに削除マーカーであるバージョンが1つしかない場合、OSSは削除マーカーの有効期限が切れたと見なし、削除マーカーを削除します。 オブジェクトに複数のバージョンがあり、オブジェクトの現在のバージョンが削除マーカーの場合、OSSは削除マーカーを保持します。 削除マーカーの詳細については、「マーカーの削除」をご参照ください。

      重要

      一致したオブジェクトに以前のバージョンがある場合、ライフサイクルルールはオブジェクトの削除マーカーを削除しません。 不要になった以前のオブジェクトバージョンを削除し、マーカーを削除して、多数の削除マーカーによるリストのパフォーマンスの低下を防ぐことをお勧めします。

      以前のバージョンに対するポリシー

      ファイル時間ポリシー

      以前のバージョンの有効期限を指定します。 [有効期間 (日)] または 有効になっていません を選択できます。 有効になっていません を選択した場合、オブジェクトの有効期限ポリシーは設定されません。

      ライフサイクルベースのルール

      オブジェクトが以前のバージョンになってから保持できる日数を指定します。 有効期限が切れると、指定されたアクションは翌日以前のバージョンで実行されます。 たとえば、Validity Period (Days) パラメーターを30に設定した場合、2023年9月1日に以前のバージョンになったオブジェクトは、指定されたストレージクラスに移動されるか、2023年10月1日に削除されます。

      重要

      オブジェクトが以前のバージョンになるときは、それ以降のバージョンが生成された時刻に基づいて判断できます。

  6. クリックOK.

    ライフサイクルルールの作成後、ライフサイクルルールリストでルールを表示できます。

OSS SDKの使用

次のサンプルコードは、一般的なプログラミング言語でOSS SDKを使用してライフサイクルルールを設定する方法の例を示しています。 他のプログラミング言語でOSS SDKを使用してライフサイクルルールを設定するためのサンプルコードの詳細については、「概要」をご参照ください。

Java

com.aliyun.oss.ClientExceptionをインポートします。com.aliyun.oss.OSSをインポートします。impor t com.aliyun.oss.com mon.auth.*;
com.aliyun.oss.OSSClientBuilderをインポートします。com.aliyun.oss.OSSExceptionをインポートします。impor t com.aliyun.oss.com mon.utils.DateUtil;
com.aliyun.oss.mo del.LifecycleRuleをインポートします。com.aliyun.oss.mo del.SetBucketLifecycleRequestをインポートします。com.aliyun.oss.mo del.StorageClassをインポートします。java.util.ArrayListをインポートします。java.util.HashMapをインポートします。java.util.Listをインポートします。java.util.Mapをインポートします。public classデモ {

    public static void main(String[] args) throws Exception {
        // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
        String endpoint = " https://oss-cn-hangzhou.aliyuncs.com ";
        // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。 例: examplebucket. 
        String bucketName = "examplebucket";

        // Create an OSSClient instance. 
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);

        try {
            // SetBucketLifecycleRequestを使用してリクエストを作成します。 
            SetBucketLifecycleRequest request = new SetBucketLifecycleRequest(bucketName);

            // ライフサイクルルールのIDを指定します。 
            String ruleId0 = "rule0";
            // ライフサイクルルールを一致させるプレフィックスを指定します。 
            String matchPrefix0 = "A0/";
            // ライフサイクルルールを一致させるタグを指定します。 
            Map<String, String> matchTags0 = new HashMap<String, String>();
            // タグのキーと値を指定します。 この例では、キーは所有者に設定され、値はJohnに設定されています。 
            matchTags0.put("owner" 、"John");


            String ruleId1 = "rule1";
            String matchPrefix1 = "A1/";
            Map<String, String> matchTags1 = new HashMap<String, String>();
            matchTags1.put("type" 、"document");

            String ruleId2 = "rule2";
            String matchPrefix2 = "A2/";

            String ruleId3 = "rule3";
            String matchPrefix3 = "A3/";

            文字列ruleId4 = "rule4";
            文字列matchPrefix4 = "A4/";

            文字列ruleId5 = "rule5";
            文字列matchPrefix5 = "A5/";

            文字列ruleId6 = "rule6";
            文字列matchPrefix6 = "A6/";

            // 最後に変更した時刻から3日後に有効期限を設定します。 
            LifecycleRule rule = new LifecycleRule(ruleId0, matchPrefix0, LifecycleRule.RuleStatus.Enabled, 3);
            rule.setTags(matchTags0);
            request.AddLifecycleRule(rule);

            // 指定された日付より前に作成されたオブジェクトの有効期限を指定します。 
            rule = new LifecycleRule(ruleId1, matchPrefix1, LifecycleRule.RuleStatus.Enabled);
            rule.setCreatedBeforeDate(DateUtil.parseIso8601Date("2022-10-12T00:00:00.000Z"));
            rule.setTags(matchTags1);
            request.AddLifecycleRule(rule);

            // 最後に変更してから3日後に期限切れになるように指定します。 
            rule = new LifecycleRule(ruleId2, matchPrefix2, LifecycleRule.RuleStatus.Enabled);
            LifecycleRule.AbortMultipartUpload abortMultipartUpload = new LifecycleRule.AbortMultipartUpload();
            abortMultipartUpload.setExpirationDays(3);
            rule.setAbortMultipartUpload(abortMultipartUpload);
            request.AddLifecycleRule(rule);

            // 特定の日付より前に作成されたパーツの有効期限を指定します。 
            rule = new LifecycleRule(ruleId3, matchPrefix3, LifecycleRule.RuleStatus.Enabled);
            abortMultipartUpload = new LifecycleRule.AbortMultipartUpload();
            abortMultipartUpload.setCreatedBeforeDate(DateUtil.parseIso8601Date("2022-10-12T00:00:00.000Z"));
            rule.setAbortMultipartUpload(abortMultipartUpload);
            request.AddLifecycleRule(rule);

            // オブジェクトのストレージクラスが最後に変更されてから10日後にIAに変更され、最後に変更されてから30日後にアーカイブに変更されることを指定します。 
            rule = new LifecycleRule(ruleId4, matchPrefix4, LifecycleRule.RuleStatus.Enabled);
            List<LifecycleRule.StorageTransition> storageTransitions = new ArrayList<LifecycleRule.StorageTransition>();
            LifecycleRule.StorageTransition storageTransition = new LifecycleRule.StorageTransition();
            storageTransition.setStorageClass(StorageClass.IA);
            storageTransition.setExpirationDays(10);
            storageTransitions.add(storageTransition);
            storageTransition = new LifecycleRule.StorageTransition();
            storageTransition.setStorageClass(StorageClass. アーカイブ);
            storageTransition.setExpirationDays(30);
            storageTransitions.add(storageTransition);
            rule.setStorageTransition(storageTransitions);
            request.AddLifecycleRule(rule);

            // 10月12日2022より前に最後に変更されたオブジェクトのストレージクラスをアーカイブに変更することを指定します。 
            rule = new LifecycleRule(ruleId5, matchPrefix5, LifecycleRule.RuleStatus.Enabled);
            storageTransitions = new ArrayList<LifecycleRule.StorageTransition>();
            storageTransition = new LifecycleRule.StorageTransition();

            storageTransition.setCreatedBeforeDate(DateUtil.parseIso8601Date("2022-10-12T00:00:00.000Z"));

            storageTransition.setStorageClass(StorageClass. アーカイブ);
            storageTransitions.add(storageTransition);
            rule.setStorageTransition(storageTransitions);
            request.AddLifecycleRule(rule);

            // バージョン管理が有効なバケットに対してrule6を設定することを指定します。 
            rule = new LifecycleRule(ruleId6, matchPrefix6, LifecycleRule.RuleStatus.Enabled);
            // オブジェクトが最後に変更されてから365日後に、オブジェクトのストレージクラスをアーカイブに変更することを指定します。 
            storageTransitions = new ArrayList<LifecycleRule.StorageTransition>();
            storageTransition = new LifecycleRule.StorageTransition();
            storageTransition.setStorageClass(StorageClass. アーカイブ);
            storageTransition.setExpirationDays(365);
            storageTransitions.add(storageTransition);
            rule.setStorageTransition(storageTransitions);
            // 期限切れの削除マーカーを自動的に削除するようにライフサイクルルールを設定します。 
            rule.setExpiredDeleteMarker(true);
            // オブジェクトが最後に変更されてから10日後に、以前のバージョンのオブジェクトのストレージクラスをIAに変更することを指定します。 
            LifecycleRule.NoncurrentVersionStorageTransition noncurrentVersionStorageTransition=
                    新しいLifecycleRule.NoncurrentVersionStorageTransition().withNoncurrentDays(10).withStrorageClass(StorageClass.IA);
            // オブジェクトが最後に変更されてから20日後に、以前のバージョンのオブジェクトのストレージクラスをアーカイブに変更することを指定します。 
            LifecycleRule.NoncurrentVersionStorageTransition noncurrentVersionStorageTransition2=
                    新しいLifecycleRule.NoncurrentVersionStorageTransition().withNoncurrentDays(20).withStrorageClass(StorageClass.Archive);
            // オブジェクトが最後に変更されてから30日後に、以前のバージョンのオブジェクトを削除するように指定します。 
            LifecycleRule.NoncurrentVersionExpiration noncurrentVersionExpiration = new LifecycleRule.NoncurrentVersionExpiration().withNoncurrentDays(30);
            リスト <LifecycleRule.NoncurrentVersionStorageTransition> noncurrentVersionStorageTransitions = new ArrayList<LifecycleRule.NoncurrentVersionStorageTransition>();
            noncurrentVersionStorageTransitions.add(noncurrentVersionStorageTransition2);
            rule.setStorageTransition(storageTransitions);
            rule.setNoncurrentVersionExpiration(noncurrentVersionExpiration);
            rule.setNoncurrentVersionStorageTransitions(noncurrentVersionStorageTransitions);
            request.AddLifecycleRule(rule);

            // ライフサイクルルールを設定するリクエストを開始します。 
            ossClient.setBucketLifecycle(request);

            // バケットに設定されているライフサイクルルールを照会します。 
            リスト <LifecycleRule> listRules = ossClient.getBucketLifecycle(bucketName);
            for(LifecycleRuleルール: listRules){
                System.out.println("ruleId=" + rules.getId()+ ", matchPrefix=" + rules.getPrefix());
            }
        } catch (Exception e) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "しかし、何らかの理由でエラー応答で拒否されました。");
            System.out.println("エラーメッセージ:" + oe.getErrorMessage());
            System.out.println("エラーコード:" + oe.getErrorCode());
            System.out.println("リクエストID:" + oe.getRequestId());
            System.out.println("ホストID:" + oe.getHostId());
        } catch (ClientException e) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + 「ネットワークにアクセスできないなど」;
            System.out.println("エラーメッセージ:" + ce.getMessage());
        } 最後に{
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

<?php
if (is_file(__DIR__) 。 '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

OSS\Credentials\EnvironmentVariableCredentialsProviderを使用します。OSS\OssClientを使用します。OSS\CoreOssExceptionを使用します。OSS\Model\LifecycleConfigを使用します。OSS\Model\LifecycleRuleを使用します。OSS\Model\LifecycleActionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
$provider = new EnvironmentVariableCredentialsProvider();
// この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
$end point = " https://oss-cn-hangzhou.aliyuncs.com ";
// バケットの名前を指定します。 
$bucket= "examplebucket";

// ルールに一致するオブジェクトの名前に含まれるルールIDとプレフィックスを指定します。 
$ruleId0 = "rule0";
$matchPrefix0 = "A0/";
$ruleId1 = "rule1";
$matchPrefix1 = "A1/";

$lifecycleConfig = new LifecycleConfig();
$actions = array();
// オブジェクトが最後に変更されてから3日後に期限切れになるように指定します。 
$actions[] = new LifecycleAction(OssClient::OSS_LIFECYCLE_EXPIRATION, OssClient::OSS_LIFECYCLE_TIMING_DAYS, 3);
$lifecycleRule = new LifecycleRule($ruleId0、$matchPrefix0、"Enabled" 、$actions);
$lifecycleConfig->addRule($lifecycleRule);
$actions = array();
// 指定された日付より前に作成されたオブジェクトの有効期限を指定します。 
$actions[] = new LifecycleAction(OssClient::OSS_LIFECYCLE_EXPIRATION、OssClient:::OSS_LIFECYCLE_TIMING_DATE、'2022-10-12T00:00:00.000Z');
$lifecycleRule = new LifecycleRule($ruleId1、$matchPrefix1、"Enabled" 、$actions);
$lifecycleConfig->addRule($lifecycleRule);
try {
    $config=配列 (
        "provider" => $provider、
        "endpoint" => $end ポイント、
    );
    $ossClient = new OssClient($config);

    $ossClient->putBucketLifecycle($bucket、$lifecycleConfig);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage()) 。 "\n");
    戻ります。}
print(__FUNCTION__) 。 ": OK" 。 "\n"); 

Node.js

const OSS = require('ali-OSS ')

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
  region: 'yourregion' 、
  // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID、
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
  // バケットの名前を指定します。 
  bucket: 'yourbucketname'
});

async関数putBucketLifecycle (ライフサイクル) {
  try {
    const result = await client.putBucketLifecycle('yourbucketname', [
    ライフサイクルの設定 (Set lifecycle)
  ]);
    console.log (結果);
  } catch (e) {
    console.log(e);
  }
}

const lifecycle1 = {
  id: 'rule1' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、
  有効期限: {
    // オブジェクトの現在のバージョンが最後に変更されてから3日後に期限切れになるように指定します。 
    日: 3 
  }
}
putBucketLifecycle(lifecycle1)

const lifecycle2 = {
  id: 'rule2' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  有効期限: {
    // 指定された日付より前に作成されたオブジェクトの有効期限を指定します。 
    createdBeforeDate: '2020-02-18T00:00:00.000Z' 
  },
}
putBucketLifecycle(lifecycle2)

const lifecycle3 = {
  id: 'rule3' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  abortMultipartUpload: {
    // 部品が3日で期限切れになるように指定します。 
    日: 3 
  },
}
putBucketLifecycle(lifecycle3)

const lifecycle4 = {
  id: 'rule4' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  abortMultipartUpload: {
    // 指定した日付より前に作成したパーツの有効期限を指定します。 
    createdBeforeDate: '2020-02-18T00:00:00.000Z' 
  },
}
putBucketLifecycle(lifecycle4)

const lifecycle5 = {
  id: 'rule5' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  transition: {
    // オブジェクトが最後に変更されてから20日後に、現在のバージョンのオブジェクトのストレージクラスをアーカイブに変更することを指定します。 
    日: 20,
    storageClass: 'アーカイブ'
  },
  有効期限: {
    // オブジェクトの現在のバージョンが最後に変更されてから21日後に期限切れになるように指定します。 
    日: 21 
  },
}
putBucketLifecycle(lifecycle5)

const lifecycle6 = {
  id: 'rule6' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  transition: {
    // 指定された日付より前に作成されたオブジェクトのストレージクラスをアーカイブに変更することを指定します。 
    createdBeforeDate: '2023-02-19T00:00:00.000Z' 、 
    storageClass: 'アーカイブ'
  },
  有効期限: {
    // 指定された日付より前に作成されたオブジェクトを削除するように指定します。 
    createdBeforeDate: '2023-01-18T00:00:00.000Z' 
  },
}
putBucketLifecycle(lifecycle6)

const lifecycle7 = {
  id: 'rule7' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  有効期限: {
    // 削除マーカーが期限切れになると自動的に削除されるように指定します。 
    expiredObjectDeleteMarker: true 
  }
}
putBucketLifecycle(lifecycle7)

const lifecycle8 = {
  id: 'rule8' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  // オブジェクトが最後に変更されてから10日後に、以前のバージョンのオブジェクトのストレージクラスをIAに変更することを指定します。 
  noncurrentVersionTransition: {
    noncurrentDays: '10' 、
    storageClass: 「IA」
  }
}
putBucketLifecycle(lifecycle8)

const lifecycle9 = {
  id: 'rule9' 、
  ステータス: 'Enabled' 、
  プレフィックス: 'foo/'、 
  // オブジェクトが最後に変更されてから10日後に、以前のバージョンのオブジェクトのストレージクラスをIAに変更することを指定します。 
  noncurrentVersionTransition: {
    noncurrentDays: '10' 、
    storageClass: 「IA」
  },
  // ルールに一致させるオブジェクトのタグを指定します。 
  tag: [{
    キー: 'key1' 、
    値: 'value1'
  },
   {
     キー: 'key2' 、
     値: 'value2'
   }]
}
putBucketLifecycle(lifecycle9) 

Python

# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
datetimeのインポート
oss2.modelsインポートから (LifecycleExpiration, LifecycleRule, 
                        BucketLifecycle、AbortMultipartUpload、 
                        TaggingRule, タグ付け, StorageTransition,
                        NoncurrentVersionStorageTransition、
                        NoncurrentVersionExpiration)

# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 
# バケットの名前を指定します。 例: examplebucket. 
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')

# オブジェクトが最後に変更されてから3日後に期限切れになるように指定します。 
rule1 = LifecycleRule('rule1', 'tests/',
                      status=LifecycleRule.ENABLED,
                      expiration=LifecycleExpiration(days=3)

# 指定された日付より前に作成されたオブジェクトの有効期限を指定します。 
rule2 = LifecycleRule('rule2' 、'tests2/'、
                      status=LifecycleRule.ENABLED,
expiration=LifecycleExpiration(created_before_date=datetime.date(2023, 12, 12)))

# 最後に変更されてから3日後に部品の有効期限が切れるように指定します。 
rule3 = LifecycleRule('rule3' 、'tests3/'、
                      status=LifecycleRule.ENABLED,
            abort_multipart_upload=AbortMultipartUpload(days=3))

# 指定した日付より前に作成したパーツの有効期限を指定します。 
rule4 = LifecycleRule('rule4' 、'tests4/'、
                      status=LifecycleRule.ENABLED,
                      abort_multipart_upload = AbortMultipartUpload(created_before_date=datetime.date(2022、12、12)))

# オブジェクトのストレージクラスが、最後に変更されてから20日後に低頻度アクセス (IA) に変更され、最後に変更されてから30日後にアーカイブに変更されることを指定します。 
rule5 = LifecycleRule('rule5' 、'tests5/'、
                      status=LifecycleRule.ENABLED,
                      storage_transitions=[StorageTransition(days=20,storage_class=oss2.BUCKET_STORAGE_CLASS_IA),
                            StorageTransition(days=30、storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE)]

# ライフサイクルルールを一致させるタグを指定します。 
tagging_rule = TaggingRule()
tagging_rule.add('key1', 'value1')
tagging_rule.add('key2', 'value2')
tagging=タグ付け (tagging_rule)

# オブジェクトのストレージクラスが最後に変更されてから365日後にアーカイブに変更されるように指定します。  
# 上記のルールと比較して、rule6にはオブジェクトを一致させるタグ条件が含まれています。 このルールは、タグ設定がkey1=value1およびkey2=value2であるオブジェクトに対して有効になります。 
rule6 = LifecycleRule('rule6' 、'tests6/'、
                      status=LifecycleRule.ENABLED,
                      storage_transitions=[StorageTransition(created_before_date=datetime.date(2022、12、12) 、storage_class=oss2.BUCKET_STORAGE_CLASS_IA)] 、
                      tagging = tagging)

# rule7は、バージョン管理が有効なバケットに適用されるライフサイクルルールです。 
# オブジェクトのストレージクラスが最後に変更されてから365日後にアーカイブに変更されるように指定します。 
# 削除マーカーが期限切れになると自動的に削除されることを指定します。 
# オブジェクトのストレージクラスが以前のバージョンになってから12日後にIAに変更されるように指定します。 
# オブジェクトのストレージクラスが以前のバージョンになってから20日後にアーカイブに変更されるように指定します。 
# オブジェクトが以前のバージョンになってから30日後に削除されることを指定します。 
rule7 = LifecycleRule('rule7' 、'tests7/'、
              status=LifecycleRule.ENABLED,
              storage_transitions=[StorageTransition(days=365、storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE)] 、 
              expiration=LifecycleExpiration(expired_detete_marker=True) 、
              noncurrent_version_sotrage_transitions= 
                    [NoncurrentVersionStorageTransition(12、oss2.BUCKET_STORAGE_CLASS_IA) 、
                     NoncurrentVersionStorageTransition (20, oss2.BUCKET_STORAGE_CLASS_ARCHIVE)] 、
              noncurrent_version_expiration = NoncurrentVersionExpiration (30)

lifecycle = BucketLifecycle([rule1, rule2, rule3, rule4, rule5, rule6, rule7])

bucket.put_bucket_lifecycle (ライフサイクル) 

C#

Aliyun.OSSを使用した

Aliyun.OSS.Common; を使用
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 
var endpoint = " https://oss-cn-hangzhou.aliyuncs.com ";
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケット名を指定します。 例: examplebucket. 
var bucketName = "examplebucket";

// OSSClientインスタンスを作成します。 
var client = new OssClient (エンドポイント、accessKeyId、accessKeySecret);
トライ
{
    var setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucketName);
    // 最初のライフサイクルルールを作成します。 
    LifecycleRule lcr1 = new LifecycleRule()
    {
        ID = "delete obsoleted files",
        Prefix = "obsoleted/",
        Status = RuleStatus.Enabled,
        ExpriationDays = 3、
        タグ=新しいタグ [1]
    };
    // ルールのタグを指定します。 
    var tag1=新しいタグ
    {
        キー="プロジェクト" 、
        値="projectone"
    };

    lcr1.タグ [0] = tag1;

    // Create the second lifecycle rule. 
    LifecycleRule lcr2 = new LifecycleRule()
    {
        ID = "delete temporary files",
        Prefix = "temporary/",
        Status = RuleStatus.Enabled,
        ExpriationDays = 20、
        タグ=新しいタグ [1]         
    };
    // ルールのタグを指定します。 
    var tag2=新しいタグ
    {
        キー="ユーザー" 、
        値="jsmith"
    };
    lcr2.タグ [0] = tag2;

    // 最後に変更してから30日後に期限切れになるように指定します。 
    lcr2.AbortMultipartUpload = new LifecycleRule.LifeCycleExpiration()
    {
        日数=30
    };

    LifecycleRule lcr3 = new LifecycleRule();
    lcr3.ID = "のみNoncurrentVersionTransition";
    lcr3.Prefix = "test1";
    lcr3.Status = RuleStatus.Enabled;
    lcr3.NoncurrentVersionTransitions = new LifecycleRule.LifeCycleNoncurrentVersionTransition[2]
    {
        // 以前のバージョンのオブジェクトのストレージクラスが、最後に変更されてから90日後にIAに変換されるように指定します。 
        新しいLifecycleRule。LifeCycleNoncurrentVersionTransition(){
            StorageClass = StorageClass.IA、
            NoncurrentDays = 90
        },
        // 以前のバージョンのオブジェクトのストレージクラスが、最後に変更されてから180日後にアーカイブに変換されるように指定します。 
        新しいLifecycleRule。LifeCycleNoncurrentVersionTransition(){
            StorageClass = StorageClass. アーカイブ、
            NoncurrentDays = 180
        }
    };
    setBucketLifecycleRequest.AddLifecycleRule(lcr1);
    setBucketLifecycleRequest.AddLifecycleRule(lcr2);
    setBucketLifecycleRequest.AddLifecycleRule(lcr3);

    // Configure lifecycle rules. 
    client.SetBucketLifecycle(setBucketLifecycleRequest);
    Console.WriteLine("Set bucket:{0} Lifecycle successful", bucketName);
}
キャッチ (OssException ex)
{
    Console.WriteLine("Failed with error code: {0}; エラー情報: {1} 。 \nRequestID:{2}\tHostID:{3}"、
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
キャッチ (例外ex)
{
    Console.WriteLine("Failed with error info: {0}" 、メッセージなど);
} 

Android-Java

PutBucketLifecycleRequest request = new PutBucketLifecycleRequest();
request.setBucketName("examplebucket");

BucketLifecycleRule rule1=新しいBucketLifecycleRule();
// ルールに一致するオブジェクトの名前に含まれるルールIDとプレフィックスを指定します。 
rule1.setIdentifier("1");
rule1.setPrefix("A");
// ライフサイクルルールを実行するかどうかを指定します。 このパラメーターがtrueに設定されている場合、OSSはこのルールを定期的に実行します。 このパラメーターがfalseに設定されている場合、OSSはこのルールを無視します。 
rule1.setStatus(true);
// オブジェクトが最後に変更されてから200日後に期限切れになるように指定します。 
rule1.setDays("200");
// オブジェクトのストレージクラスが最後に変更されてから30日後にアーカイブに変換されるように指定します。
rule1.setArchiveDays("30");
// アップロードに失敗してから3日後に期限切れになるように指定します。 
rule1.setMultipartDays("3");
// オブジェクトのストレージクラスが最後に変更されてから15日後に低頻度アクセス (IA) に変換されるように指定します。 
rule1.setIADays("15");

BucketLifecycleRule rule2=新しいBucketLifecycleRule();
rule2.setIdentifier("2");
rule2.setPrefix("B");
rule2.setStatus(true);
rule2.setDays("300");
rule2.setArchiveDays("30");
rule2.setMultipartDays("3");
rule2.setIADays("15");

ArrayList<BucketLifecycleRule> lifecycleRules = new ArrayList<BucketLifecycleRule>();
lifecycleRules.add(rule1);
lifecycleRules.add(rule2);
request.setLifecycleRules(lifecycleRules);
OSSAsyncTask task = oss.asyncPutBucketLifecycle(request, new OSSCompletedCallback<PutBucketLifecycleRequest, PutBucketLifecycleResult>() {
    @Override
    public void onSuccess(PutBucketLifecycleRequestリクエスト, PutBucketLifecycleResult結果) {
        OSSLog.logInfo("code::" + result.getStatusCode());

    }

    @Override
    public void onFailure(PutBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: " + serviceException.getRawMessage());

    }
});

task.waitUntilFinished(); 

Go

パッケージメイン

import (import (import)
"fmt"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
"os"
)

func main() {
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// OSSClientインスタンスを作成します。 
	// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 実際のエンドポイントを指定します。 
	client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケットの名前を指定します。 
	bucketName := "examplebucket"
// ライフサイクルルールを設定し、IDをrule1に設定します。 バケット内のfooプレフィックスを含む名前のオブジェクトは、オブジェクトが最後に変更されてから3日後に期限切れになるように指定します。 
	rule1 := oss.BuildLifecycleRuleByDays("rule1", "foo/", true, 3)

// バージョン管理が有効になっているバケット内のオブジェクトが削除マーカーであり、他のバージョンがない場合、削除マーカーは削除されます。 
	deleteMark := true
expiration := oss.LifecycleExpiration {
ExpiredObjectDeleteMarker: &deleteMark、}

// 以前のバージョンのオブジェクトが最後に変更されてから30日後に削除されるように指定します。 
	versionExpiration := oss.LifecycleVersionExpiration {
NoncurrentDays: 30、}

// 以前のバージョンのオブジェクトのストレージクラスを、オブジェクトが最後に変更されてから10日後に低頻度アクセス (IA) に変換するように指定します。 
	versionTransition := oss.LifecycleVersionTransition {
NoncurrentDays: 10、StorageClass: "IA" 、}

// ライフサイクルルールを設定し、IDをrule2に設定します。 
	rule2 := oss.LifecycleRule {
ID: "rule2" 、プレフィックス: "yourObjectPrefix" 、ステータス: "Enabled" 、有効期限:&有効期限、NonVersionExpiration: &versionExpiration、NonVersionTransitions: []oss.LifecycleVersionTransition {
versionTransition,
},
}

// ライフサイクルルールを設定し、IDをrule3に設定します。 このルールは、キーがtag1で値がvalue1のタグを持つオブジェクトに対して有効になります。 これらのオブジェクトは、オブジェクトが最後に変更されてから3日後に期限切れになります。 
	rule3 := oss.LifecycleRule {
ID: "rule3" 、プレフィックス: "",
ステータス: "Enabled" 、タグ: []oss.Tag {
oss. タグ {
キー: "tag1" 、値: "value1" 、},
},
有効期限: &oss。LifecycleExpiration{Days: 3} 、}

// ライフサイクルルールを設定します。 
	rules := []oss.LifecycleRule{rule1, rule2, rule3}
err = client.SetBucketLifecycle(bucketName, rules)
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
} 

C++

#include <alibabacloud/oss/OssClient.h>
名前空間listaCloud::OSSを使用します。int main(void)
{
    /* OSSへのアクセスに使用されるアカウントに関する情報を初期化します。 */
    
    /* バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 */
    std::string Endpoint = "yourEndpoint";
    /* バケットの名前を指定します。 例: examplebucket. */
    std::string BucketName = "examplebucket";

    /* ネットワークリソースなどのリソースを初期化します。 */
    InitializeSdk();

    ClientConfiguration conf;
    /* 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClientクライアント (Endpoint, credentialsProvider, conf);

    SetBucketLifecycleRequestリクエスト (BucketName);
    std::string date("2022-10-12T00:00:00.000Z");

    /* ルールに一致させるオブジェクトのタグを指定します。 */
    タグ付け;
    tagging.addTag (タグ ("key1", "value1"));
    tagging.addTag (タグ ("key2", "value2"));

    /* ライフサイクルルールを指定します。 */
    auto rule1 = LifecycleRule();
    rule1.setID("rule1");
    rule1.setPrefix("test1/");
    rule1.setStatus(RuleStatus::Enabled);
    rule1.setExpiration(3);
    rule1.setTags(tagging.Tags());

    /* 有効期限を指定します。 */
    auto rule2 = LifecycleRule();
    rule2.setID("rule2");
    rule2.setPrefix("test2/");
    rule2.setStatus(RuleStatus:: 無効);
    rule2.setExpiration (日付);

    /* バケットのバージョン管理が有効になっている場合、バケットのrule3が有効になっていることを指定します。 */
    auto rule3 = LifecycleRule();
    rule3.setID("rule3");
    rule3.setPrefix("test3/");
    rule3.setStatus(RuleStatus::Disabled);

    /* オブジェクトが最後に変更されてから365日後に、オブジェクトのストレージクラスをアーカイブに変更するように指定します。 */  
    auto transition = LifeCycleTransition();  
    transition.Expiration().setDays(365);
    transition.setStorageClass(StorageClass:: アーカイブ);
    rule3.addTransition(transition);

    /* 期限切れの削除マーカーが自動的に削除されるように指定します。 */
    rule3.setExpiredObjectDeleteMarker(true);

    /* オブジェクトが最後に変更されてから10日後に、以前のバージョンのオブジェクトのストレージクラスをIAに変更するように指定します。 */
    auto transition1 = LifeCycleTransition();  
    transition1.Expiration().setDays(10);
    transition1.setStorageClass(StorageClass::IA);

    /* オブジェクトが最後に変更されてから20日後に、以前のバージョンのオブジェクトのストレージクラスをアーカイブに変更するように指定します。 */
    auto transition2 = LifeCycleTransition();  
    transition2.Expiration().setDays(20);
    transition2.setStorageClass(StorageClass:: アーカイブ);

    /* バージョンが更新されてから30日後に以前のバージョンを削除するように指定します。 */
    自動有効期限=LifeCycleExpiration(30);
    rule3.setNoncurrentVersionExpiration (有効期限);

    LifeCycleTransitionList noncurrentVersionStorageTransitions{transition1, transition2};
    rule3.setNoncurrentVersionTransitionList(noncurrentVersionStorageTransitions);

    /* ライフサイクルルールを設定します。 */
    LifecycleRuleListリスト {rule1, rule2, rule3};
    request.setLifecycleRules (リスト);
    auto outcome = client.SetBucketLifecycle (リクエスト);

    if (!outcome.isSuccess()) {
        /* 例外を処理します。 */
        std::cout << "SetBucketLifecycle fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* ネットワークリソースなどのリソースを解放します。 */
    ShutdownSdk();
    0を返します。} 

C

#include "oss_api.h"
# 「aos_http_io.h」を含める
/* バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。 * /
const char * endpoint = "yourEndpoint";
/* バケットの名前を指定します。 例: examplebucket. * /
const char * bucket_name = "examplebucket";
void init_options(oss_request_options_t * オプション)
{
    options->config = oss_config_create(options->pool);
    /* char * 文字列を使用してaos_string_tを初期化します。 */
    aos_str_set(&options->config->endpoint, endpoint);
    /* 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 */
    aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
    aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
    /* CNAMEを使用してOSSにアクセスするかどうかを指定します。 値0は、CNAMEが使用されないことを示す。 */
    options->config->is_cname = 0;
    /* タイムアウト時間などのネットワークパラメーターを指定します。 */
    options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char * argv[])
{
    /* main() でaos_http_io_initializeメソッドを呼び出して、ネットワークリソースやメモリリソースなどのグローバルリソースを初期化します。 */
    if (aos_http_io_initialize(NULL, 0))! =AOSE_OK) {
        exit(1);
    }
    /* メモリを管理するためのメモリプールを作成します。 aos_pool_tはapr_pool_tと同じです。 メモリプールの作成に使用されるコードは、APRライブラリに含まれています。 */
    aos_pool_t *pool;
    /* メモリプールを作成します。 2番目のパラメーターの値はNULLです。 この値は、プールが他のメモリプールを継承しないことを示します。 */
    aos_pool_create(&pool, NULL);
    /* Create and initialize options. このパラメーターには、エンドポイント、access_key_id、access_key_secret、is_cname、curlなどのグローバル構成情報が含まれます。 */
    oss_request_options_t *oss_client_options;
    /* メモリプール内のメモリリソースをオプションに割り当てます。 */
    oss_client_options = oss_request_options_create(pool);
    /* oss_client_optionsを初期化します。 */
    init_options(oss_client_options);
    /* パラメーターを初期化します。 */
    aos_string_t bucket;
    aos_table_t *resp_headers = NULL; 
    aos_status_t *resp_status = NULL; 
    aos_str_set(&bucket, bucket_name);
    aos_list_t lifecycle_rule_list;   
    aos_str_set(&bucket, bucket_name);
    aos_list_init(&lifecycle_rule_list);
    /* 有効期間を指定します。 */
    oss_lifecycle_rule_content_t *rule_content_days = oss_create_lifecycle_rule_content(pool);
    aos_str_set(&rule_content_days->id, "rule-1");
    /* ルールに一致するオブジェクトの名前に含まれるプレフィックスを指定します。 */
    aos_str_set(&rule_content_days-> プレフィックス、"dir1");
    aos_str_set(&rule_content_days->status, "Enabled");
    rule_content_days->days = 3;
    aos_list_add_tail(&rule_content_days->node, &lifecycle_rule_list);
    /* 有効期限を指定します。 */
    oss_lifecycle_rule_content_t *rule_content_date = oss_create_lifecycle_rule_content(pool);
    aos_str_set(&rule_content_date->id, "rule-2");
    aos_str_set(&rule_content_date-> プレフィックス、"dir2");
    aos_str_set(&rule_content_date->status, "Enabled");
    /* 有効期限はUTCで表示されます。 
    aos_str_set(&rule_content_date->date, "2023-10-11T00:00:00.000Z");
    aos_list_add_tail(&rule_content_date->node, &lifecycle_rule_list);
    /* ライフサイクルルールを設定します。 */
    resp_status = oss_put_bucket_lifecycle(oss_client_options, &bucket, &lifecycle_rule_list, &resp_headers);
    if (aos_status_is_ok(resp_status)) {
        printf("put bucket lifecycle succeeded\n");
    } else {
        printf("put bucket lifecycle failed, code:%d, error_code:%s, error_msg:%s, request_id:%s\n",
            resp_status->code, resp_status->error_code, resp_status->error_msg, resp_status->req_id);
    }
    /* メモリプールを解放して、リクエストに割り当てられたメモリリソースを解放します。 */
    aos_pool_destroy(pool);
    /* 割り当てられたグローバルリソースを解放します。 */
    aos_http_io_deinitialize();
    0を返します。} 

Ruby

'aliyun/oss 'が必要です

client = Aliyun::OSS::Client.new (
  # この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
  エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
  # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
  access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケット名を指定します。 
bucket = client.get_bucket('examplebucket')
# ライフサイクルルールを設定します。 
bucket.lifecycle = [
  Aliyun::OSS::LifeCycleRule.new (
    : id => 'rule1' 、: enable => true、: prefix => 'foo/'、: expiry => 3) 、
  Aliyun::OSS::LifeCycleRule.new (
    : id => 'rule2', :enable => false, :prefix => 'bar/', :expiry => Date.new(2016, 1, 1))
] 

ossutilの使用

ossutilを使用してライフサイクルルールを設定できます。 詳細については、「ライフサイクルルールの作成または変更」をご参照ください。

OSS APIの使用

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「PutBucketLifecycle」をご参照ください。

よくある質問

StorageClass ArchiveのTransitionアクションのSet bucket lifecycleエラー、InvalidArgument、DaysがStorageClass IAのTransitionアクションよりも多くなければならない場合エラーメッセージが報告されますか?

ストレージクラス変換のストレージ期間要件が満たされていないため、エラーメッセージが表示されます。 オブジェクトのストレージクラスをIA、Archive、Cold Archive、およびDeep Cold Archiveに変換するライフサイクルルールを設定する場合、各ストレージクラスのストレージ期間は次の要件を満たす必要があります。

IAに変換するためのストレージ期間 <アーカイブに変換するためのストレージ期間 <コールドアーカイブに変換するためのストレージ期間 <ディープコールドアーカイブに変換するためのストレージ期間

バケットのライフサイクルルールは、バケット内の既存のオブジェクトに適用されますか。

バケットのライフサイクルルールは、ルールが作成される前に存在するオブジェクトと、ルールが作成された後に作成されるオブジェクトに適用されます。 たとえば、2023 10月7日に、最後に変更されてから30日後にオブジェクトを削除するライフサイクルルールを設定しました。 10月5日2023にアップロードされたオブジェクトは、2023年11月6日に削除されます。 10月8日2023にアップロードされたオブジェクトは、2023年11月9日に削除されます。

バケットの1つ以上のライフサイクルルールで設定項目を変更するにはどうすればよいですか。

たとえば、バケットにはRule1とRule2の2つのライフサイクルルールがあります。 Rule1の設定項目を変更するには、次の手順を実行します。

  1. GetBucketLifecycle操作を呼び出して、バケットに設定されているすべてのライフサイクルルールを照会します。 操作はライフサイクルルールRule1とRule2を返します。

  2. Rule1で目的の構成アイテムを変更します。

  3. PutBucketLifecycle操作を呼び出して、バケットのRule1とRule2を設定します。

バケットに設定されている1つ以上のライフサイクルルールを削除するにはどうすればよいですか。

DeleteBucketLifecycle操作を呼び出すと、バケットに設定されているすべてのライフサイクルルールが削除されます。 たとえば、バケットにはRule1とRule2の2つのライフサイクルルールがあります。 バケットに設定されているすべてのライフサイクルルールを削除するには、DeleteBucketLifecycle操作を呼び出します。 Rule1のみを削除するには、次の手順を実行します。

  1. GetBucketLifecycle操作を呼び出して、バケットに設定されているすべてのライフサイクルルールを照会します。 操作はライフサイクルルールRule1とRule2を返します。

  2. Rule1を削除します。

  3. PutBucketLifecycle操作を呼び出して、バケットのRule2を設定します。

オブジェクトのストレージクラスが変換されたとき、またはライフサイクルルールに基づいて期限切れのオブジェクトが削除されたときに、OSSはログを生成しますか?

はい。ライフサイクルルールに基づいて、オブジェクトのストレージクラスが変換されるか、期限切れのオブジェクトが削除されると、OSSはログを生成します。 ログには、次のフィールドが含まれます。

  • 操作

    • CommitTransition: IA、Archive、Cold Archiveなどに変換されるストレージクラスを示します。

    • ExpireObject: ライフサイクルルールに基づいて削除された期限切れのオブジェクトを示します。

  • Sync Request

    lifecycle: ライフサイクルルールによってトリガーされるストレージクラスの変換またはオブジェクトの削除アクションを示します。

OSSログフィールドの詳細については、「ログフィールド」をご参照ください。 課金の詳細については、「課金ルール」をご参照ください。

オブジェクト削除マーカーを削除し、現在のオブジェクトバージョンを削除するライフサイクルルールを作成できますか?

いいえ、オブジェクト削除マーカーを削除し、現在のオブジェクトバージョンを削除するライフサイクルルールを作成することはできません。 ライフサイクルルールを作成して、削除マーカーを削除できます。 削除マーカーを削除した後、ライフサイクルルールを作成して、現在のバージョンのオブジェクトを削除できます。

オブジェクトの最後に変更された時間に基づいて、オブジェクトのストレージクラスをIAから標準に変換するライフサイクルルールを作成できますか?

いいえ、オブジェクトのストレージクラスをIAからStandardに変換するライフサイクルルールを作成することはできません。 次のいずれかのメソッドを使用して、オブジェクトのストレージクラスをIAからStandardに変換できます。

  • CopyObject操作の呼び出し

    CopyObject操作を呼び出して、オブジェクトのストレージクラスをIAからStandardに変換できます。

  • ossutil の使用

    ossutil set-metaコマンドでX-Oss-Storage-Classオプションを指定すると、1つ以上のオブジェクトのストレージクラスをIAからStandardに変換できます。 詳細については、「オブジェクトメタデータの設定または更新」をご参照ください。

関連ドキュメント

  • デフォルトでは、OSSはオブジェクトのアップロード時刻をオブジェクトの最終変更時刻として使用します。 特定の操作は、オブジェクトの最終変更時刻を更新します。 ただし、ライフサイクルルールに基づくストレージクラスの変換では、最終変更時刻は更新されません。 OSSオブジェクトのLastModified属性に影響する操作のリストについては、OSSオブジェクトのLastModified属性に影響を与える操作は何ですか。

  • IA、Archive、Cold Archive、またはDeep Cold Archiveオブジェクトのストレージクラスを変換し、最小ストレージ期間が終了する前にオブジェクトを削除した場合、最小ストレージ期間全体に対して課金されます。 詳細については、「」をご参照ください。ストレージ期間が最小ストレージ期間より短いオブジェクトに対して、どのように課金されますか?

  • ライフサイクルルールを使用すると、バケット内の特定のプレフィックスを名前に含むすべてのオブジェクトまたはオブジェクトのストレージクラスを変換したり、そのようなオブジェクトを削除したりできます。 名前に特定の拡張子が含まれているオブジェクトを削除するには、ossutilでrmコマンドを実行します。 詳細は、「rm」をご参照ください。

  • OSSがデータアクセスパターンに基づいてホットデータとコールドデータを識別し、コールドデータをより費用対効果の高いストレージクラスに自動的に移動する場合は、最終アクセス時間に基づいてライフサイクルルールを設定できます。 詳細については、「最終アクセス時間に基づくライフサイクルルール」をご参照ください。

  • バケット内のすべてのオブジェクトのストレージクラスを照会する方法の詳細については、「オブジェクトのリスト」をご参照ください。