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

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

最終更新日:Mar 19, 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という名前のライフサイクルルールがバケットに設定されていて、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) まで削除されます。
重要 ライフサイクルルールを更新すると、その日にルールに基づいて実行される予定のタスクが中断されます。 ライフサイクルルールを頻繁に更新しないことを推奨します。

完了時間

  • タグを含まないライフサイクルルールの場合、オブジェクトの削除、ストレージクラスの変換、期限切れの部品で実行できる操作など、24時間で最大10億のライフサイクル関連の操作を実行できます。 10億を超えるライフサイクル関連の操作を実行する場合、操作の完了に必要な期間は24時間を超える可能性があります。
  • タグを含むライフサイクルルールの場合、オブジェクトの削除、ストレージクラスの変換、期限切れの部品で実行できる操作など、24時間で最大500万のライフサイクル関連の操作を実行できます。 500万を超えるライフサイクル関連の操作を実行する場合、操作の完了に必要な期間は24時間を超える可能性があります。
説明 バケットのバージョン管理が有効になっている場合、オブジェクトの各バージョンに対して実行された操作が操作として記録されます。

課金ルール

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

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

  • OSSオブジェクトに基づくライフサイクルルール

    OSS-HDFSが有効になっているバケット内のすべてのオブジェクトと一致するようにライフサイクルルールを設定または変更するには、NOT要素を使用してに格納されているオブジェクトを除外します。dlsdata/ ディレクトリ。 これにより、ライフサイクルルールによってトリガーされるオブジェクト削除操作またはストレージクラス変換操作が、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プレフィックスが含まれ、a=1タグが付いているすべてのオブジェクトに対して有効です。 rule2は、最後に変更されてから120日後に一致するオブジェクトを削除するように設定されます。

ルール

プレフィックス

タグ

アクション

rule1

-

a=1

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

rule2

こんにちは

a=1

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

次の表に記載されているrule3は、a=1タグを持つすべてのオブジェクトに対して有効で、一致したオブジェクトのストレージクラスを最後に変更してから20日後にアーカイブに変換するように構成されています。 次の表に示すrule4は、名前にabcプレフィックスが含まれ、a=1タグが付いているオブジェクトに対して有効です。 rule4は、最後に変更されてから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. ライフサイクル ページで、ルールの作成 をクリックします。

    説明

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

  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 /で始まるすべてのオブジェクトがライフサイクルルールと一致します。

      タグ

      タグを指定します。 このルールは、指定されたタグを持つオブジェクトに対してのみ有効です。 たとえば、[指定されたプレフィックスを持つオブジェクト] を選択し、プレフィックスをimgに設定し、keyがaで値が1のタグを指定した場合、名前にimgプレフィックスを含み、a=1のタグを持つすべてのオブジェクトにルールが適用されます。 オブジェクトタグの詳細については、「オブジェクトへのタグの追加」をご参照ください。

      ではない

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

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

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

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

      ファイルサイズ

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

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

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

      重要

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

      • 最大オブジェクトサイズが最小オブジェクトサイズより大きいことを確認します。

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

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

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

      ファイル時間ポリシー

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

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

      ライフサイクルルールを設定して、オブジェクトのストレージクラスを変換するか、期限切れのオブジェクトを削除します。

      例1: [アクセス時間] を選択した場合、有効期間 を30に設定し、有効期間の経過後にオブジェクトのストレージクラスをIA (アクセス後に変換しない) に変換するように指定します。 この場合、2021年9月1日に最後にアクセスされたオブジェクトのストレージクラスは、2021年10月1日にIAに変換されます。

      例2: [変更期間] を選択した場合、有効期限を2021年9月24日に設定し、この日付より前に最後に変更されたオブジェクトを削除するように指定します。 この場合、2021年9月24日より前に最後に変更されたオブジェクトは自動的に削除されます。 削除されたオブジェクトは復元できません。

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

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

      期限切れの部品に対して実行する操作を指定します。 タグ をオンにすると、このパラメーターは使用できません。 [有効期間 (日)][有効期限] 、または 有効になっていません を選択できます。 有効になっていません を選択した場合、部品ライフサイクルルールは設定されません。

      重要

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

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

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

    • バージョン管理が有効なバケット

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

      セクション

      パラメーター

      説明

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

      削除マーカーの削除

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

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

      重要

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

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

      ファイル時間ポリシー

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

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

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

      重要

      最新バージョンが生成された時刻に基づいて、オブジェクトが以前のバージョンになった時刻を判断できます。

  6. OK をクリックします。

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

ossbrowserの使用

ossbrowserを使用して、OSSコンソールで実行できるのと同じバケットレベルの操作を実行できます。 ossbrowserの画面上の指示に従って、バケットのライフサイクルルールを設定できます。 詳細については、「ossbrowserの使用」をご参照ください。

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>() {
    @オーバーライド
    public void onSuccess(PutBucketLifecycleRequestリクエスト, PutBucketLifecycleResult結果) {
        OSSLog.logInfo("code::" + result.getStatusCode());

    }

    @オーバーライド
    public void onFailure(PutBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
        OSSLog.logError("error: " + serviceException.getRawMessage());

    }
});

task.waitUntilFinished(); 

Go

パッケージメイン

import (import (import)
"fmt"
"os"

「github.com/aliyun/aliyun-oss-go-sdk/oss」
)

func main() {
// バケットの名前を指定します。 
	bucketName := "yourBucketName"

// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、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)
}

// ライフサイクルルールを作成し、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、NonVersionTransition: &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}
// バケット名を指定します。 例: examplebucket. 
	bucketName := "examplebucket"
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を直接呼び出すことができます。 RESTful APIリクエストを直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「PutBucketLifecycle」をご参照ください。

よくある質問

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

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

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

私は何をしますか?code: "InvalidRequest" data: "バケットライフサイクルエラーの設定、InvalidRequest、CreatedBeforeDateの検出、およびStorageClassアクションの日数ベースの有効期限と移行エラーメッセージが報告されますか?

ライフサイクルルールに相互排他的な設定項目 (DaysとCreatedBeforeDate) が含まれているため、このエラーメッセージが報告されます。 このエラーを解決するには、次の項目を確認してください。

  • 同じライフサイクルルールで、ライフサイクルルールの時間条件として有効期間または有効期限を選択できます。

  • 異なるライフサイクルルールの重複プレフィックスを許可を選択しない場合、同じバケットの異なるライフサイクルルールの有効期間または有効期限のみを選択できます。

  • 異なるライフサイクルルールの重複プレフィックスを許可を選択した場合、同じバケットの異なるライフサイクルルールの有効期間と有効期限の両方を選択できます。

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

バケットのライフサイクルルールは、ルールが作成される前に存在するオブジェクトと、ルールが作成された後に作成されるオブジェクトの両方に適用されます。 たとえば、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、アーカイブ、またはコールドアーカイブ。

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

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