削除されたオブジェクトのリストア

削除したオブジェクトをオブジェクト・ストレージ・バケットにリカバリします。

バージョニングが有効な場合、特定のバージョンをターゲットとせずにオブジェクトを削除すると削除マーカーが作成され、オブジェクトの以前のバージョンをリカバリできます。削除されたオブジェクトは、「削除されたオブジェクトの表示」機能が選択されている場合にのみ「オブジェクト」リストに表示されます。リストされた削除済オブジェクトには、オブジェクト・エントリ名の横に「(削除済オブジェクト)」があります。削除したオブジェクトのバージョン・リストを展開し、その横に(マーカーの削除)があるバージョンを検索します。削除されたオブジェクト・バージョンをリストアするには、その削除マーカーを削除します。以前のバージョンが存在する場合、そのバージョンはライブオブジェクトになります。

ノート

オブジェクトのアップロード時に、オブジェクト・ストレージ・バケットに対してバージョニングを有効にする必要があります。バージョニングが無効または一時停止されているバケットから削除されたオブジェクトはリカバリできません。
    1. 「バケット」リスト・ページで、操作するオブジェクト・ストレージ・バケットを選択します。リスト・ページまたはバケットの検索に関するヘルプが必要な場合は、バケットのリストを参照してください。
    2. バケットの詳細ページで、「オブジェクト」を選択します。
      「オブジェクト」タブが開きます。選択したバケット内のすべてのオブジェクトが表に表示されます。
    3. 「アクション」メニューから、「削除済オブジェクトの表示」を選択します。
      フォルダおよびサブフォルダを含む削除されたオブジェクトが表示されます。
    4. リカバリするオブジェクトを検索します。
    5. オブジェクトの「アクション」メニュー(3つのドット)から、「バージョンの表示」を選択します。
      オブジェクトのバージョンのリストが表示されます。最新バージョンがリストの最上部に表示され、「最新バージョン」と表示されます。
    6. オブジェクトの「アクション」メニュー(3つのドット)から、「削除」を選択します。
    7. プロンプトが表示されたら、削除を確認します。
    削除マーカーを削除したオブジェクトの後にリストされたオブジェクト・バージョンが、リストアされたオブジェクトになります。
  • CLIを使用してバケット内の削除済オブジェクトをリストアするには、まず、削除対象としてマークされているオブジェクトを知る必要があります。その情報を取得するには、バケット内のオブジェクトをリストします。バケット内のオブジェクト・バージョンのリストを参照し、「CLI」タブを選択して適切なコマンドを実行します。

    出力で、"is-delete-marker": trueのオブジェクト・バージョンを検索します。

    バケット内の削除済オブジェクトをリストアするには、oci os object deleteコマンドと必要なパラメータを使用します。version-idパラメータとそのオブジェクトの値を含めます。

    oci os object delete --bucket-name bucket_name --object-name object_name --version-id version_id [OPTIONS]

    このコマンドを実行すると、削除の確認を求められます。

    Are you sure you want to delete this resource? [y/N]:

    yで回答します。

    例:

    oci os object delete --bucket-name MyBucket --name MyFile.txt --version-id 2a0021a1-2a2f-41a0-a199-454003f84aa0
    Are you sure you want to delete this resource? [y/N]: y

    オブジェクトの削除マーカーは削除され、それ以上の情報は返されません。オブジェクトはそのバケットにリストアされます。削除マーカーを削除した後、オブジェクトをリストしてリストアされたことを確認できます。

    CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。

    削除されたオブジェクトの一括復元

    1つのバケット内の複数のオブジェクトを同時にリストアするには、使用可能なOCI CLIフィルタを使用して"is-delete-marker": trueインジケータを問い合せます。詳細は、CLIの入力および出力の管理の「問合せの使用」を参照してください。

    たとえば、削除されたオブジェクトのグループをリストアするには、次のコマンドを実行して、削除マーカーを含むオブジェクトのリストと、削除された各オブジェクトのバージョンIDを取得します。

    oci os object list-object-versions --bucket-name MyBucket --query "data[?\"is-delete-marker\"].{Name:name,version:\"version-id\"}"|jq -r '.[]

    次に、出力を別のコマンドにパイプするか、ラッパー・スクリプトを記述してバケット内の削除済オブジェクトをリストアします。たとえば、Linuxホストで削除マーカーを使用してバケット内のすべてのオブジェクトをリストアするには、次のコマンドを実行します:

    oci os object list-object-versions --bucket-name MyBucket --query "data[?\"is-delete-marker\"].{Name:name,version:\"version-id\"}"|jq -r '.[] | join(" ")'| xargs -n 2 sh -c 'oci os object delete --namespace MyNamespace --bucket-name MyBucket --object-name "$1" --version-id "$2"' argv0
    

    --forceパラメータを使用すると、対話モードを回避できます。ただし、重要な情報が欠落しないように、このオプションを慎重に使用してください。

  • まず、ListObjectVersions操作を使用して、"is-delete-marker": trueを持つオブジェクトを検索します。次に、DeleteObject操作を使用して、オブジェクトから削除マーカーを削除します。