バケットでバージョン管理を有効化すると、Object Storage Service (OSS) は上書きまたは削除されたオブジェクトを以前のバージョンとして保存します。バケットに多数の以前のバージョンや削除マーカーが蓄積された場合、ライフサイクルルールを使用してこれらを自動的に削除できます。これにより、ストレージコストを削減し、オブジェクト一覧表示のパフォーマンスを向上させることができます。
前提条件
対象バケットでバージョン管理が有効化されていること。詳細については、「バージョン管理の有効化」をご参照ください。
ユースケース
examplebucket という名前のバケットでバージョン管理が有効化されているシナリオを想定します。ユーザーが 2 月 8 日に example.txt という名前のオブジェクトをアップロードした後、バージョン ID を指定せずに複数回オブジェクトを上書きまたは削除しました。各操作に対して Object Storage Service (OSS) は一意のバージョン ID を生成し、オブジェクトを以前のバージョンとして保存します。次の図に示すバージョン ID は説明のために簡略化されており、実際のバージョン ID を表すものではありません。
これらの操作後、ユーザーは以下の操作を行いたいと考えています。
-
5 月 8 日および 9 月 10 日のオブジェクトバージョンのみを保持する。
-
5 月 8 日の以前のバージョンを現在のバージョンとして復元する。
操作手順
-
特定のオブジェクトバージョンの保持
現在の日付が 9 月 10 日であると仮定します。5 月 8 日および 9 月 10 日のオブジェクトバージョンのみを保持するには、以下の設定でライフサイクルルールを構成します。
-
OSS コンソール にログインします。
-
左側のナビゲーションウィンドウで バケット をクリックします。[Buckets] ページで examplebucket をクリックします。
-
左側のナビゲーションウィンドウで を選択します。
-
ルールの作成 をクリックします。以下の表の設定でライフサイクルルールを構成し、その他の設定はデフォルト値のままにします。
セクション
パラメーター
説明
基本設定
ステータス
有効 を選択します。
ポリシー
バケット全体に適用 を選択します。
現在のバージョンのポリシー
オブジェクトのライフサイクル
削除マーカーの削除 を選択します。
以前のバージョンに対するポリシー
オブジェクトのライフサイクル
指定の日数 を選択します。
ライフサイクルベースのルール
変更時刻 を 90 日に設定します。オブジェクトは、以前のバージョンになってから 90 日後に有効期限切れとなり、翌日に削除されます。
説明この例では、5 月 8 日にアップロードされたオブジェクトが 9 月 10 日に以前のバージョンに移行します。以前のバージョンになってからの経過日数が 90 日未満であるため、そのオブジェクトは保持され、削除されません。
フラグメントに対するポリシー
フラグメント期限切れポリシー
指定の日数 を選択します。
フラグメントに対するルール
値を 90 に設定します。不完全な multipart upload タスクのパーツは、作成後 90 日で有効期限切れとなり、翌日に削除されます。
-
OK をクリックします。
-
-
特定のオブジェクトバージョンの復元
5 月 8 日の以前のバージョンを現在のバージョンとして復元するには、以下の手順を実行します。
-
examplebucket の管理ページで、オブジェクト管理 > オブジェクト を選択します。
-
履歴バージョン の横にある 表示 をクリックします。
-
最終変更日が 5 月 8 日の example.txt オブジェクトのバージョンを見つけます。
-
対象の以前のバージョンの [Actions] 列で、回復 をクリックします。
-
注意事項
ライフサイクルルールを使用してオブジェクトのバージョンを管理する際は、以下の点にご注意ください。
-
現在のバージョンの有効期限切れ
-
バージョン管理が有効化されたバケットの場合、ライフサイクルルールによってオブジェクトの現在のバージョンが有効期限切れになると、OSS はオブジェクトを削除しません。代わりに、新しい現在のバージョンとして削除マーカーを追加し、有効期限切れになった現在のバージョンを以前のバージョンにします。
-
バージョン管理が一時停止されたバケットの場合、ライフサイクルルールによってオブジェクトの現在のバージョンが有効期限切れになると、OSS は null バージョン ID を持つ削除マーカーを新しい現在のバージョンとして追加します。オブジェクトは null バージョン ID を持つバージョンを 1 つしか持てないため、この新しい削除マーカーは null バージョン ID を持つ既存のバージョンを上書きします。
-
-
以前のバージョンの有効期限切れ
バージョン管理が有効化または一時停止されているバケットにおいて、ライフサイクルルールによってオブジェクトの以前のバージョンが有効期限切れになると、OSS はそのバージョンを完全に削除します。完全に削除された以前のバージョンは復元できません。
詳細については、「最終変更時刻に基づくライフサイクルルール」をご参照ください。
関連リソース
API オペレーションを使用してオブジェクトを復元することもできます。オブジェクトの以前のバージョンを現在のバージョンとして復元するには、以前のバージョンを同じバケットにコピーします。コピーされたオブジェクトが新しい現在のバージョンになります。詳細については、「CopyObject」をご参照ください。