オブジェクト・ライフサイクル管理の使用

オブジェクト・ライフサイクル管理を使用してオブジェクト・ストレージおよびアーカイブ・ストレージのデータを管理することで、ストレージ・コストとデータの手動管理に費やす時間を減らすことができます。

オブジェクト・ライフサイクル管理は、定義したルールに基づいて自動化されたアクションを実行することで機能します。これらのルールは、コミットされていないマルチパート・アップロードを削除し、オブジェクトを別のストレージ層に移動し、指定されたバケット内のユーザーにかわってサポートされているリソースを削除するようにオブジェクト・ストレージに指示します。バケットのライフサイクル・ルールは、総称してオブジェクトのライフサイクル・ポリシーと呼ばれます。オブジェクト・ライフサイクル管理でサポートされるリソースには、オブジェクト、オブジェクト・バージョン、およびコミットされていないか失敗したマルチパート・アップロードが含まれます。

たとえば、次のような処理を自動的に実行するルールを定義できます。

  • .doc拡張子を持つ標準層オブジェクトを、作成または最終更新の60日後に、アクセス頻度の低い層またはアーカイブ層に移動します。
  • 作成または最終更新の30日後に標準階層オブジェクトをアーカイブ階層に移動し、180日後にこれらのアーカイブ済オブジェクトを自動的に削除します。
  • 作成または最終更新の90日後に、標準階層オブジェクトを低頻度アクセス階層に移動します。
  • オブジェクト・バージョンが最新バージョンから以前のバージョンに遷移してから、以前のオブジェクト・バージョンを120日後に削除します。
  • コミットされていないか失敗したマルチパート・アップロードを5日後に削除します。
  • バケットを削除する準備として、バケット内のすべてのオブジェクトおよびオブジェクト・バージョンを削除します。

オブジェクト・ストレージまたはアーカイブ・ストレージ・バケットには、最大1,000個のルールで構成される単一のライフサイクル・ポリシーを設定できます。オブジェクト関連のルールには、オブジェクト名の接頭辞とパターン一致の条件を指定できます。コミットされていないマルチパート・アップロードのルールでは、接頭辞パターン一致の条件はサポートされません。

必要に応じて、コンソールで個々のルールを作成、編集、削除、有効化および無効化できます。CLIまたはAPIを使用してライフサイクル・ポリシーを更新するには、既存のポリシーを新しいポリシーで上書きします。バケットに適用するすべてのポリシー・ルールが新しいポリシーに含まれていることを確認します。

必須IAMポリシー

重要

オブジェクト・ライフサイクル管理は、代理でオブジェクトをアーカイブおよび削除する権限をオブジェクト・ストレージ・サービスに付与するまで、使用できません。詳細は、サービス権限を参照してください。

ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。

ユーザー権限

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限がない、または認可されていないというメッセージが表示された場合は、自分がどのタイプのアクセス権を持っているか、およびどのコンパートメントで作業するかを管理者に確認してください。

管理者の場合:

  • ポリシーオブジェクト・ストレージの管理者がバケットとオブジェクトを管理するにより、指定したグループは、バケットおよびオブジェクトを使用したすべてのこと(ライフサイクル・ポリシーの追加および管理を含む)を実行できます。
  • 個別の権限を付与するより限定的なポリシーを作成する場合:
    • OBJECT_VERSION_DELETEでは、ライフサイクル・ポリシーを使用して以前のオブジェクト・バージョンを代理で削除する必要があります。
    • オブジェクトのストレージ層を変更するには、OBJECT_UPDATE_TIERが必要です。

オブジェクト・ストレージのユーザー権限の詳細は、オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細を参照してください。

サービス権限

オブジェクト・ライフサイクル・ポリシーを実行するには、代理でオブジェクトをアーカイブおよび削除する権限をサービスに付与する必要があります。これを行うには、テナンシのルート・コンパートメントに次のポリシーを作成します:

Allow service objectstorage-<region_identifier> to manage object-family in compartment <compartment_name>

オブジェクト・ストレージはリージョナル・サービスであるため、ライフサイクル・ポリシーを使用する各リージョンでオブジェクト・ストレージ・サービスを認可する必要があります。オブジェクト・ストレージにより、データが権限のないリージョンから読み取られないことが保証されます。

テナンシのルート・コンパートメントのポリシーを書き込む権限がない場合は、Oracle Cloud Infrastructure管理者に連絡してください。Oracle Cloud Infrastructureリージョンのリージョン識別子の値を決定するには、リージョンおよび可用性ドメインを参照してください。

ポリシー動詞manageを使用するかわりに、サービスに個別の権限を付与できます。例:

Allow service objectstorage-<region_identifier> to manage object-family in compartment <compartment_name> where any {request.permission='BUCKET_INSPECT', request.permission='BUCKET_READ', request.permission='OBJECT_INSPECT', request.permission='OBJECT_CREATE', request.permission='OBJECT_DELETE', request.permission='OBJECT_VERSION_DELETE'}

オプション

オブジェクト・ライフサイクル・ポリシー・ルールを作成する場合、次のオプションがあります:

  • ライフサイクル・ルールが作成されると、そのルールのデフォルト名(たとえばlifecycle-rule-20190321-1559)が生成されます。このルール名は、ルールが作成された現在の年、月、日および時刻を識別します。そのシステム生成の名前を新しいルールに使用することも、別の名前を指定することもできます。
  • 次のことを行うライフサイクル・ルールを作成できます。
    • バケット内のすべてのオブジェクトを移動または削除します。
    • 指定したオブジェクト名フィルタに一致するバケット内のオブジェクトを移動または削除します。オブジェクト名の接頭辞とパターン一致の両方を使用して、オブジェクトを選択できます。詳細は、オブジェクト名フィルタの使用を参照してください。
    • コミットされていないか失敗したマルチパート・アップロードを削除します。詳細は、マルチパート・アップロードの使用を参照してください。
    バケットでオブジェクト・バージョニングが有効化または一時停止されている場合は、次のことを行うライフサイクル・ルールも作成できます。
    • バケット内のすべてのオブジェクトの前のバージョンを移動または削除します。
    • 指定した名前フィルタに一致するバケット内の以前のバージョンのオブジェクトを移動または削除します。オブジェクト名の接頭辞とパターン一致の両方を使用して、オブジェクトを選択できます。詳細は、オブジェクト名フィルタの使用を参照してください。
  • 指定されたアクションが実行されるまでの日数を指定します。
  • 作成時に新しいルールを有効にするか無効にするかを決定します。

オブジェクト名フィルタの使用

オブジェクト名フィルタを使用して、ライフサイクル・ルールが適用されるオブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンのサブセットを指定します。ルール・ターゲット(オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョン)ごとに個別のオブジェクト名フィルタ・ルールを作成します。

重要ルールをすべてのオブジェクト、すべてのオブジェクト・バージョンまたは以前のすべてのオブジェクト・バージョンのターゲットに適用する場合は、オブジェクト名フィルタを指定

しないでください。

次の2種類のオブジェクト名フィルタがサポートされています。

  • 接頭辞の照合は、オブジェクト名の左端の文字を完全に照合したものです。接頭辞の一致ではワイルドカード文字はサポートされていません。オブジェクト・ストレージ・バケットおよびオブジェクトはフラット構造で存在しますが、接頭辞を使用すると、スラッシュ(/)でディレクトリ構造をシミュレートできます。詳細は、接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
  • パターン一致はオブジェクト名全体で一致しますが、オブジェクト名内のゼロ個以上の文字に一致するように、必要に応じてワイルドカード文字およびその他のパターン一致構造体の使用をサポートします。
重要

オブジェクト名フィルタは、オブジェクト名全体に対して機能します。接頭辞(コンソールに仮想フォルダおよびサブフォルダとして表示される)は、オブジェクト名の一部です。

コンソールでの仮想フォルダの表示方法を示すスクリーンショット。

この図では、/marathon/participants/p_21.jpgはオブジェクトの名前で、p_21.jpgではありません。

オブジェクト名フィルタは任意の順序で追加できます。オブジェクト・ライフサイクル管理は、次のようにルールの優先度を評価します:

  1. パターン除外
  2. パターン包含
  3. 接頭辞包含

接頭辞一致を使用したオブジェクトのフィルタ処理

ライフサイクル管理関連の操作を実行する場合、照合のために接頭辞文字列を使用できます。オブジェクト名の接頭辞部分を照合して、特定のバルク操作を実行することもできます。

  • 次のオブジェクト名の例では、接頭辞にディレクトリ構造をシミュレートする1つ以上のスラッシュ(/)が含まれています。文字列marathon/またはmarathon/participants/は、ライフサイクル・ルールで照合のための接頭辞として使用できます。
    marathon/finish_line.jpg
    marathon/podium.jpg
    marathon/participants/p_21.jpg
    marathon/participants/p_29.jpg
  • 次のオブジェクト名の例では、文字列gloves_27_をライフサイクル・ルールの照合目的で接頭辞として使用できます。
    gloves_27_dark_green.jpg
    gloves_27_light_blue.jpg
    gloves_27_deep_purple.jpg
    gloves_27_bright_orange.jpg
            

パターン一致を使用したオブジェクトのフィルタ処理

オブジェクト・ストレージでは、オブジェクトを含めるか除外するために、次のパターン一致文字がサポートされます:

文字 説明 パターンの例 一致する 一致しない
* 0文字以上の文字と一致します *.tmp

foo.tmp

foo/bar/baz.tmp

tmp

Atmp

*.xls

.xls

/home/user/file.xls

xls

.xl

/archive/*

/archive/sub/dir/

/archive/1/2/3/4/foo.txt

/src/archive/a

archive/b

? 任意の1文字と一致します X?Z

XyZ

X_Z

XZ

XYYZ

\ 次の文字をエスケープします \\dir\\sub\\*

\dir\sub\ABC

\dir\sub\

dir\sub\abc

dirsub

[...]

文字のグループと一致します。これには次があります:

  • 文字のセット。例: [Zafg9@]。カッコ内の任意の文字と一致します。
  • 文字の範囲。例: [a-f]。範囲内の任意の文字と一致します:
    • [a-f]は[abcdef]と同等です。

    • 文字範囲では、CHARACTER-CHARACTERのパターンのみがサポートされます:

      • [ab-yz]は無効です
      • [a-mn-z]は無効です
    • 文字範囲は^またはコロン(:)で開始できません。

    • ハイフン(-)を範囲に含めるには、先頭または最後の文字にします。

[-ab3]

-

a

b

3

-a

-ab

3b

backup.tar.gz.[0-9]

backup.tar.gz.0

backup.tar.gz.5

backup.tar.gz.9

backup.tar.gz10

backup.tar.gz

page-[0-9]*

page-0

page-2

page-22

page-2X

page-

page-A1

\[a-z\] [a-z]

a

z

[a-z

パターンは1024文字に制限されています。無効なパターンの例は次のとおりです:

  • \
  • [^a-z]
  • [z-a]
  • [:isalpha:]

範囲および制約

オブジェクト・ライフサイクル・ポリシー・ルールに関する次の範囲および制約について理解します:

  • ライフサイクル・ポリシー・ルールを作成する場合、そのターゲットのオブジェクト名フィルタを追加しないかぎり、そのルールは、すべてのオブジェクト、すべてのオブジェクト・バージョンまたはバケットに存在する以前のすべてのオブジェクト・バージョンに適用されます。
  • 接頭辞およびパターン一致フィルタリングは、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンのルールにのみ適用されます。オブジェクトのフィルタリングは、コミットされていないマルチパート・アップロードには適用されません。
  • オブジェクトを削除するルールは、同じオブジェクトを別のストレージ層に移動するルールよりも常に優先されます。
  • 以前のオブジェクト・バージョンを移動または削除するルールを作成する場合は、移動または削除が発生するまでの日数を指定します。「日数」のカウントダウンは、オブジェクト・バージョンがいつ最新のオブジェクト・バージョンから前のオブジェクト・バージョンに遷移したかに基づきます。この時間は、オブジェクトの最新バージョンの「最終変更」時間を調べることで確認できます。次のスクリーンショットは、コンソールでのアーカイブまたは削除のカウントダウンの開始に使用される時間を示しています。

    アーカイブまたは削除のカウントダウンを開始するために使用される最終変更時間を示すスクリーンショット。

  • 自動階層化が有効になっている場合、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンを低頻度アクセスに移動するルールは作成できません。
  • オブジェクトの最新バージョンまたは以前のバージョンを移動または削除するルールを作成する場合は、最小保存期間に注意してください。
    • アーカイブ層の最小保持要件は90日間です。90日の保持最小値に達していないアーカイブ層から移動または削除されたオブジェクトは、90日間のストレージとして請求されます。
    • アクセス頻度の低い層には、31日間の最小保存要件があります。31日間の保存最小値を満たしていない「アクセス頻度の低い層」から移動または削除されたオブジェクトは、31日間のストレージに対して請求されます。
  • バケットごとに最大1,000個のライフサイクル・ルールを作成できます。

オブジェクト・ライフサイクル管理ポリシーの作業

ライフサイクル・ポリシー・ルールは、コンソールコマンドライン・インタフェース(CLI)、SDKまたはAPIを使用して、作成、削除、編集または無効化できます。

注意ライフサイクル・ポリシーによって代理で削除された

オブジェクトは、リカバリできません。ライフサイクル・ポリシーを作成および編集する際には、保持するデータを誤って削除しないようにしてください。本番環境でポリシーを使用する前に、開発データでライフサイクル・ポリシーをテストすることをお薦めします。

コンソールの使用

ライフサイクル・ポリシー・ルールを作成するには
  1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージ」で、「バケット」をクリックします。
  2. ライフサイクル・ルールを作成するバケットを含むコンパートメントを選択します。
  3. バケット名をクリックします。
  4. 「リソース」の下にある「ライフサイクル・ポリシー・ルール」をクリックして、ライフサイクル・ポリシー・ルール・リストにアクセスします。
  5. 「ルールの作成」をクリックします。

    コンソールは、設定されているIAMポリシーをチェックして、ポリシー・ルールの作成が成功したことを確認します。ポリシーの欠落に関する警告が表示された場合は、コンソールで欠落しているポリシーの作成を試行するか、欠落しているポリシーの詳細をクリップボードにコピーして管理者に電子メールを送信できます。必要なポリシーが設定されていると思われる場合は、次に進み、ライフサイクル・ポリシー・ルールの作成を試行します。

  6. 次の情報を入力します:
    • 名前: 必須。現在の年、月、日および時刻を反映するデフォルトのルール名が生成されます(たとえば、lifecycle-rule-20190321-1559)。このデフォルトを他のルール名に変更する場合は、文字、数字、ダッシュ、アンダースコアおよびピリオドを使用します。機密情報の入力は避けてください。
    • ターゲット:必須。ライフサイクル・ルールが適用されるターゲットを選択してください。
      • オブジェクト・バージョニングが「無効」の場合は、ルール・ターゲットの「オブジェクト」または「コミットされていないマルチパート・アップロード」を選択します。
      • オブジェクト・バージョニングが「有効」の場合、または「一時停止」の場合は、ルール・ターゲットの「最新バージョンのオブジェクト」、「以前のバージョンのオブジェクト」または「コミットされていないマルチパート・アップロード」を選択します。
    • ライフサイクル・アクション:
      • ルール・ターゲットが「オブジェクト」、「最新バージョンのオブジェクト」または「以前のバージョンのオブジェクト」の場合は、「アーカイブに移動」、「頻繁にアクセスしないものに移動」または「削除」を選択します。

        バケットで自動階層化が有効になっている場合、「アクセス頻度の低いものに移動」は選択できません。

      • ルール・ターゲットが「コミットされていないマルチパート・アップロード」の場合、「削除」が唯一のオプションで、デフォルトで選択されます。
    • 日数: 指定されたアクションが実行されるまでの日数。
      ノートルールが以前のオブジェクト・バージョンをアーカイブまたは削除する

      場合、「日数」のカウントダウンは、オブジェクト・バージョンがいつ最新のオブジェクト・バージョンから以前のオブジェクト・バージョンに遷移したかに基づきます。この時間は、オブジェクトの最新バージョンの「最終変更」時間を調べることで確認できます。次のスクリーンショットは、コンソールでのアーカイブまたは削除のカウントダウンの開始に使用される時間を示しています。

      アーカイブまたは削除のカウントダウンを開始するために使用される最終変更時間を示すスクリーンショット。

  7. ルール・ターゲットが「オブジェクト」、「最新バージョンのオブジェクト」または「以前のバージョンのオブジェクト」の場合、オプションで1つ以上のオブジェクト名フィルタを追加して、ライフサイクル・ルールが適用されるオブジェクトを指定できます。接頭辞およびパターン一致を使用して、オブジェクトまたはオブジェクト・バージョンを選択できます。オブジェクト名フィルタが指定されていない場合、ルールはバケット内のすべてのオブジェクトに適用されます。

    オブジェクト名フィルタを作成するには:

    1. 「フィルタの追加」をクリックします。
    2. 「フィルタ・タイプ」を選択します。
    3. 「フィルタ値」を入力します。
    4. 「別のフィルタの追加」をクリックして、このルールに必要な数のフィルタを追加します。
  8. 「状態」セレクタを使用して、作成時にルールを有効にするか無効にするかを選択します。
  9. 「作成」をクリックします。
ライフサイクル・ポリシー・ルールを編集するには
  1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージ」で、「バケット」をクリックします。
  2. ライフサイクル・ルールを編集するバケットを含むコンパートメントを選択します。
  3. バケット名をクリックします。
  4. 「リソース」の下にある「ライフサイクル・ポリシー・ルール」をクリックして、ルール・リストにアクセスします。
  5. 編集するルールの右側にある「アクション」アイコン(3つのドット)をクリックし、「編集」をクリックします。
  6. 「ライフサイクル・ルールの編集」ダイアログ・ボックスで、変更するルールごとに必要に応じて次を編集します
    • 名前: ルールのわかりやすい名前。機密情報の入力は避けてください。
    • ライフサイクル・アクション:
      • ルール・ターゲットが「オブジェクト」、「最新バージョンのオブジェクト」または「以前のバージョンのオブジェクト」の場合は、「アーカイブに移動」、「頻繁にアクセスしないものに移動」または「削除」を選択します。
      • ルール・ターゲットが「コミットされていないマルチパート・アップロード」の場合、「削除」が唯一のオプションで、デフォルトで選択されます。
    • 日数: 指定されたアクションが実行されるまでの日数。
    • ルールがオブジェクトまたはオブジェクト・バージョンに関連する場合は、接頭辞またはパターン のオブジェクト名フィルタを編集、削除または追加できます。
    • 状態」セレクタを使用して、ルールを有効または無効にします。
  7. 「変更の保存」をクリックします。
ライフサイクル・ポリシー・ルールを有効化、無効化または削除するには

コンソールを使用して、ルールを有効化、無効化または削除できます。無効化または削除されたルールの実行はすぐに停止されます。

  1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージ」で、「バケット」をクリックします。
  2. ライフサイクル・ルールを有効化、無効化または削除するバケットを含むコンパートメントを選択します。
  3. バケット名をクリックします。
  4. 「リソース」の下にある「ライフサイクル・ポリシー・ルール」をクリックして、ルール・リストにアクセスします。
  5. 管理するルールの右側にある「アクション」アイコン(3つのドット)をクリックし、次のいずれかをクリックします:
    • 有効化 (ルールが無効化されている場合にのみ表示されます)
    • 無効化 (ルールが有効化されている場合にのみ表示されます)
    • 削除

コマンドライン・インタフェース(CLI)の使用方法

CLIの使用についての詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、コマンドライン・リファレンスを参照してください。

バケットのライフサイクル・ポリシーを作成または置換するには
ノートCLIを使用して既存のライフサイクル・ポリシーを編集

するには、ポリシーを、変更されたすべてのルールを含む新しい完全なバージョンに置き換える必要があります。
oci os object-lifecycle-policy put --namespace <object_storage_namespace> --bucket-name <bucket_name> --items <json_formatted_lifecycle_policy>
ヒント

--itemsオプションには、有効なフォーマット済JSONとしてのキーと値のペアを入力する必要があります。JSONフォーマットの詳細は、複合入力の受渡しおよび複合入力のためのJSONファイルの使用を参照してください。
--itemsキーと値のペアの入力では、次を指定する必要があります。
[
    {
      "action": "string",
      "isEnabled": true,
      "name": "string",
      "objectNameFilter": {
        "exclusionPatterns": [
          "string",
          "string"
        ],
        "inclusionPatterns": [
          "string",
          "string"
        ],
        "inclusionPrefixes": [
          "string",
          "string"
        ]
      },
      "target": "string",
      "timeAmount": 0,
      "timeUnit": "string"
    }
  ]
actionには、次のいずれかの値を指定します。
説明
ARCHIVE このアクションを指定して、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンをアーカイブ層に移動します。
INFREQUENT_ACCESS このアクションを指定して、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンをアクセス頻度の低い層に移動します。バケットで自動階層化が有効になっている場合、INFREQUENT_ACCESSは指定できません。
DELETE オブジェクト、オブジェクト・バージョンまたはオブジェクト・バージョンを削除するには、このアクションを指定します。
ABORT このアクションを使用して、失敗または不完全なマルチパート・アップロードを削除します。

targetに次のいずれかの値を指定します。
説明
objects このアクションを使用して、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンをアーカイブ層に移動します。
object-versions このアクションを使用して、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンを低頻度アクセス層に移動します。
multipart-uploads このアクションを使用して、オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンを削除します。

timeUnitを日数で指定します。

次の例では、60日後にパターン*.docを含む名前を持つ以前のオブジェクト・バージョンを標準層からアーカイブ層に移動するルールを含むライフサイクル・ポリシーを作成または置換します。ポリシーには、180日後に以前のオブジェクト・バージョンを削除するルールも含まれます。

oci os object-lifecycle-policy put --namespace MyNamespace --bucket-name MyStandardBucket --items
'[
      {
        "action": "ARCHIVE",
        "is-enabled": true,
        "name": "Move-to-Archive-Rule",
        "object-name-filter": {
          "exclusion-patterns": null,
          "inclusion-patterns": [
            "*.doc"
          ],
          "inclusion-prefixes": null
        },
        "target": "previous-object-versions",
        "time-amount": 60,
        "time-unit": "DAYS"
      },
      {
        "action": "DELETE",
        "is-enabled": true,
        "name": "Delete-Rule",
        "object-name-filter": {
          "exclusion-patterns": null,
          "inclusion-patterns": [
            "*.doc"
          ],
          "inclusion-prefixes": null
        },
        "target": "previous-object-versions",
        "time-amount": 180,
        "time-unit": "DAYS"
      }
]'

次の例では、45日後にすべてのオブジェクトを標準層から低頻度アクセス層に移動するルールを含むライフサイクル・ポリシーを作成または置換します。ポリシーには、90日後にすべてのオブジェクトをアーカイブ層に移動するルールも含まれます。

oci os object-lifecycle-policy put --namespace MyNamespace --bucket-name MyStandardTierBucket --items
'[
      {
        "action": "INFREQUENT_ACCESS",
        "is-enabled": true,
        "name": "Move-to-Infrequent-Access-Rule",
        "object-name-filter": null,
        "target": "objects",
        "time-amount": 45,
        "time-unit": "DAYS"
      },
      {
        "action": "ARCHIVE",
        "is-enabled": true,
        "name": "Move-to-Archive-Rule",
        "object-name-filter": null,
        "target": "objects",
        "time-amount": 90,
        "time-unit": "DAYS"
      }
]'

次の例では、240日後にアーカイブ層から以前のオブジェクト・バージョンを削除するライフサイクル・ポリシー・ルールを作成または置換します。

oci os object-lifecycle-policy put --namespace MyNamespace --bucket-name MyArchiveTierBucket --items
'[
    {
        "action": "DELETE", 
        "is-enabled": true, 
        "name": "Delete-from-Archive-Rule", 
        "object-name-filter": null,
        "target": "previous-object-versions",
        "time-amount": 240, 
        "time-unit": "DAYS"
      }
]'

次の例では、コミットされていないか失敗したマルチパート・アップロードを5日後にすべて削除するライフサイクル・ポリシー・ルールを作成または置換します:

oci os object-lifecycle-policy put --namespace MyNamespace --bucket-name MyBucket --items
'[
    {
        "action": "ABORT", 
        "is-enabled": true, 
        "name": "Delete-Failed-Multipart-Uploads-Rule", 
        "object-name-filter": null,
        "target": "multipart-uploads",
        "time-amount": 5, 
        "time-unit": "DAYS"
      }
]'

--itemsオプションを使用するかわりに、JSONのキーと値のペアをファイルに渡すことができます。例:

oci os object-lifecycle-policy put --namespace MyNamespace --bucket-name MyStandardTierBucket --file /path/to/file/filename

Windowsで、複合入力をJSON文字列としてCLIに渡すには、ブロック全体を二重引用符で囲む必要があります。ブロック内では、キーと値の文字列の各二重引用符は、バックスラッシュ(\)文字でエスケープする必要があります。

例:

oci os object-lifecycle-policy put --namespace MyNamespace --bucket-name MyStandardTierBucket --items "[{\"action\":\"ARCHIVE\",\"isEnabled\":true,\"name\":\"move-to-Archive-rule\",\"target\":\"previous-object-versions\",\"timeAmount\":180,\"timeUnit\":\"DAYS\"}]"
バケットのライフサイクル・ポリシーを削除するには

指定したバケットに対して定義したすべてのライフサイクル・ポリシー・ルールを削除します。

oci os object-lifecycle-policy delete --namespace <object_storage_namespace> --bucket-name <bucket_name>

例:

oci os object-lifecycle-policy delete --namespace MyNamespace --bucket-name MyStandardTierBucket

プロンプトが表示されたら、削除を確認します。

バケットのライフサイクル・ポリシーを取得するには

指定したバケットに対して定義したすべてのライフサイクル・ポリシー・ルールを取得します。

oci os object-lifecycle-policy get --namespace <object_storage_namespace> --bucket-name <bucket_name>

例:

oci os object-lifecycle-policy get --namespace MyNamespace --bucket-name MyStandardTierBucket{
  "data": {
    "items": [
      {
        "action": "ABORT",
        "is-enabled": true,
        "name": "Delete-Failed-Multipart-Uploads-Rule",
        "object-name-filter": null,
        "target": "multipart-uploads",
        "time-amount": 5,
        "time-unit": "DAYS"
      },
      {
        "action": "DELETE",
        "is-enabled": true,
        "name": "Delete-from-Archive-Rule",
        "object-name-filter": {
          "exclusion-patterns": null,
          "inclusion-patterns": null,
          "inclusion-prefixes": null
        },
        "target": "objects",
        "time-amount": 240,
        "time-unit": "DAYS"
      },
      {
        "action": "INFREQUENT_ACCESS",
        "is-enabled": true,
        "name": "Move-to-Infrequent-Access-Rule",
        "object-name-filter": {
          "exclusion-patterns": null,
          "inclusion-patterns": null,
          "inclusion-prefixes": null
        },
        "target": "objects",
        "time-amount": 45,
        "time-unit": "DAYS"
      },
      {
        "action": "ARCHIVE",
        "is-enabled": true,
        "name": "Move-to-Archive-Rule",
        "object-name-filter": {
          "exclusion-patterns": null,
          "inclusion-patterns": null,
          "inclusion-prefixes": null
        },
        "target": "previous-object-versions",
        "time-amount": 90,
        "time-unit": "DAYS"
      }
    ],
    "time-created": "2021-02-01T15:34:59.007000+00:00"
  },
  "etag": "009743fb-9503-4442-913f-fddd2ebd9542"
}

たとえば、30日後にオブジェクトをアーカイブするライフサイクル・ポリシーを取得するには:

oci os object-lifecycle-policy get --namespace MyNamespace --bucket-name MyBucketWithoutVersioning
{
  "data": {
    "items": [
      {
        "action": "ARCHIVE",
        "is-enabled": true,
        "name": "Archive-After-30-Days-Rule",
        "object-name-filter": {
          "exclusion-patterns": null,
          "inclusion-patterns": null,
          "inclusion-prefixes": null
        },
        "target": "objects",
        "time-amount": 30,
        "time-unit": "DAYS"
      }
    ],
    "time-created": "2020-10-27T17:56:27.085000+00:00"
  },
  "etag": "lifecycle-policy-a3f5d4a6-ca25-4a28-9eea-7d073f51e754"
}