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