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