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

Object Storage Service:バージョン管理が有効なバケットの最終変更時刻に基づいてライフサイクルルールを設定し、ストレージコストを削減する

最終更新日:Mar 22, 2025

Object Storage Service (OSS) は、バージョン管理が有効なバケットの上書きまたは削除されたデータを以前のバージョンとして保存します。 ストレージ コストを削減し、オブジェクト一覧表示のパフォーマンスを向上させるには、不要になった期限切れの削除マーカーと以前のバージョンを削除するライフサイクルルールを設定できます。

前提条件

バケットでバージョン管理が有効になっています。 詳細については、「バージョン管理を有効にする」をご参照ください。

シナリオ

たとえば、ユーザーが 2020 年 2 月 8 日に example.txt ファイルをバージョン管理が有効な examplebucket バケットにアップロードし、その後、同じ年に、次の図に示すように、example.txt オブジェクトに対して複数の上書き操作またはバージョン ID を指定しない削除操作を実行したとします。 OSS は、各上書き操作または削除操作に対してグローバルに一意のバージョン ID を生成し、上書きおよび削除されたデータを以前のバージョンとしてバケットに保存しました。 次の図のバージョン ID は実際のバージョン ID ではなく、読みやすくするために簡単な形式で提供されています。versioning

ビジネス要件を満たすために、ユーザーは example.txt オブジェクトのバージョンを管理して、次の目標を達成したいと考えています。

  • 2020 年 5 月 8 日と 2020 年 9 月 10 日に生成されたバージョンのみを保持します。

  • 2020 年 5 月 8 日に生成された最新の以前のバージョンを現在のバージョンに復元します。

手順

  1. 指定されたオブジェクトバージョンを保持する

    現在の日付が 2020 年 9 月 10 日であるとします。この場合、ユーザーは次の手順を実行して、2020 年 5 月 8 日と 2020 年 9 月 10 日にアップロードされたバージョンのみを保持するライフサイクルルールを設定できます。

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

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

    3. 左側のナビゲーションツリーで、データ管理 > ライフサイクル を選択します。

    4. [ライフサイクル] ページで、ルールの作成 をクリックします。 [ルールの作成] パネルで、次の表に示すパラメータを設定し、その他のパラメータについてはデフォルト設定を保持します。

      セクション

      パラメータ

      説明

      基本設定

      ステータス

      [有効] を選択します。

      ポリシー

      バケット全体に適用 を選択します。

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

      ファイル時間ポリシー

      [削除マーカーの削除] を選択します。

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

      ファイル時間ポリシー

      [有効期間 (日数)] を選択します。

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

      変更時刻に 90 と入力します。 オブジェクトバージョンは、以前のバージョンとして保存されてから 90 日後に期限切れになり、期限切れの翌日削除されます。

      説明

      この例では、5 月 8 日にアップロードされたファイルは、9 月 10 日に履歴バージョンに移行します。 履歴バージョンになってからの経過時間が 90 日未満であるため、5 月 8 日にアップロードされたファイルは履歴バージョンとして保持され、削除されません。

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

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

      [有効期間 (日数)] を選択します。

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

      テキストボックスに 90 と入力します。 マルチパートアップロード タスクで生成されたパートは、生成されてから 90 日後に期限切れになり、期限切れの翌日削除されます。

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

  2. 特定のオブジェクトバージョンを復元する

    5 月 8 日に生成された以前のバージョンを現在のバージョンに復元するには、次の手順を実行します。

    1. examplebucket バケットの左側のナビゲーションツリーで、ファイル > オブジェクト を選択します。

    2. オブジェクトリストの右上隅にある [以前のバージョン] の横にある [表示] をクリックします。

    3. [オブジェクト] ページで、現在のバージョンに復元するオブジェクトバージョンを見つけます。

    4. [アクション] 列の 回復 をクリックします。

注意事項

オブジェクトバージョンの管理にライフサイクルルールを設定する場合は、次の点に注意してください。

  • オブジェクトの現在のバージョンの有効期限ポリシー

    • バージョン管理が有効なバケットでは、ライフサイクルルールで指定された有効期限ポリシーがオブジェクトの現在のバージョンに実装されている場合、OSS はオブジェクトに削除マーカーを追加し、現在のバージョンを以前のバージョンとして保存します。 削除マーカーは、オブジェクトの現在のバージョンになります。

    • バージョン管理が一時停止されたバケットでは、ライフサイクルルールで指定された有効期限ポリシーがオブジェクトの現在のバージョンに実装されている場合、OSS はバージョン ID が null の削除マーカーを新しい現在のバージョンとしてオブジェクトに追加します。 バージョン ID が null のバージョンがオブジェクトに既に存在する場合、オブジェクトにはバージョン ID が null のバージョンが 1 つしか存在できないため、既存のバージョンは削除マーカーによって上書きされます。

  • オブジェクトの以前のバージョンの有効期限ポリシー

    バージョン管理が有効または一時停止されているバケットでは、ライフサイクルで指定された有効期限ポリシーがオブジェクトの以前のバージョンに実装されている場合、以前のバージョンは完全に削除され、復元できません。

ライフサイクルルールの詳細については、「最終変更時刻に基づくライフサイクルルール」をご参照ください。

リファレンス

API 操作を呼び出してオブジェクトを復元できます。 オブジェクトの以前のバージョンを現在のバージョンに復元するには、オブジェクトの以前のバージョンをオブジェクトが格納されているバケットにコピーします。 OSS は、オブジェクトの以前のバージョンを現在のバージョンとして保存します。 詳細については、「CopyObject」をご参照ください。