削除(復元可能)オブジェクトを使用する

概要 設定

このページでは、削除済み(復元可能)オブジェクトを一覧表示して復元する方法について説明します。

始める前に

削除済み(復元可能)オブジェクトの一覧表示、アクセス、復元に必要な権限を取得するには、バケット、マネージド フォルダ、またはプロジェクトに対するストレージ管理者roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。

この事前定義ロールには、削除済み(復元可能)オブジェクトを一覧表示して復元するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

削除済み(復元可能)オブジェクトを一覧表示してアクセスし、復元するには、次の権限が必要です。

  • storage.buckets.get
  • storage.buckets.update
  • storage.buckets.list: この権限は、Google Cloud コンソールを使用してこのページで説明する手順を行う場合にのみ必要です
  • storage.objects.restore
  • storage.objects.create
  • storage.objects.delete: この権限は、既存のオブジェクトが上書きされる方法でオブジェクトを復元する場合にのみ必要です
  • storage.buckets.restore: この権限は、削除済み(復元可能)オブジェクトを一括で復元する場合にのみ必要です

バケットのロールの付与については、バケットで IAM を使用するをご覧ください。プロジェクトに対するロールの付与については、プロジェクトへのアクセス権を管理するをご覧ください。

削除(復元可能)メソッドから開始される長時間実行オペレーションを管理するには、追加のロールと権限が必要になる場合があります。詳細については、長時間実行オペレーションに必要なロールをご覧ください。

バケット内の削除済み(復元可能)オブジェクトを一覧表示する

バケット内の削除済み(復元可能)オブジェクトを一覧表示できます。

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、削除済み(復元可能)オブジェクトを表示するバケットの名前をクリックします。[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。

  3. [表示] リストで、[削除済み(復元可能)のオブジェクトのみ] を選択します。削除済み(復元可能)オブジェクトのリストが表示されます。

コマンドライン

バケット内の削除済み(復元可能)オブジェクトのリストを表示するには、--soft-deleted フラグと --recursive フラグを指定して、gcloud storage ls コマンドを使用します。

  gcloud storage ls gs://BUCKET_NAME --soft-deleted --recursive

次のように置き換えます。

  • BUCKET_NAME: バケットの名前。例: my-bucket

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して、?softDeleted クエリ パラメータを使用するオブジェクトを一覧表示するリクエストJSON API を呼び出します。

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"

    BUCKET_NAME は、該当するバケットの名前です。例: my-bucket

オブジェクトの削除済み(復元可能)バージョンをすべて表示する

バケット内の特定のオブジェクトについて削除済み(復元可能)バージョンをすべて表示できます。

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、削除済み(復元可能)バージョンを表示するオブジェクトを含むバケットの名前をクリックします。[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。

  3. 削除済み(復元可能)バージョンを表示するオブジェクトをクリックします。[オブジェクトの詳細] ページが表示されます。

  4. [変更履歴] タブをクリックします。

  5. [表示] リストで、[削除済み(復元可能)のオブジェクトのみ] を選択します。そのオブジェクトの削除済み(復元可能)バージョンのリストが表示されます。

コマンドライン

バケット内のオブジェクトの削除済み(復元可能)バージョンのリストを表示するには、gcloud storage ls コマンドを使用します。

  gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted

次のように置き換えます。

  • BUCKET_NAME: バケットの名前。例: my-bucket
  • OBJECT_NAME: すべてのバージョンを表示するオブジェクトの名前。

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して、?softDeleted クエリ パラメータを使用するオブジェクトを一覧表示するリクエストJSON API を呼び出します。

    curl -X GET \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?matchGlob=OBJECT_NAME&softDeleted=true"

    次のように置き換えます。

    • BUCKET_NAME: バケットの名前。例: my-bucket
    • OBJECT_NAME: すべてのバージョンを表示するオブジェクトの名前。

削除済み(復元可能)オブジェクトを復元する

バケット内にある削除済み(復元可能)オブジェクトの特定のバージョンを復元できます。

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、復元する削除済みオブジェクトを含むバケットの名前をクリックします。[バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。

  3. [表示] リストで、[削除済み(復元可能)のオブジェクトのみ] を選択します。

  4. フォルダ内にあるオブジェクトに移動します。

  5. 削除済み(復元可能)オブジェクトをクリックします。[オブジェクトの詳細] ページが表示されます。

  6. [表示] リストで、[削除済み(復元可能)のオブジェクトのみ] を選択します。そのオブジェクトの削除済み(復元可能)バージョンのリストが表示されます。

  7. 削除済み(復元可能)オブジェクトの特定のバージョンを復元するには、そのバージョンの横にある [復元] をクリックします。オブジェクト バージョンの復元ペインが開きます。

  8. [確認] をクリックします。

コマンドライン

オブジェクトの削除済み(復元可能)バージョンを復元するには、gcloud storage restore コマンドを使用します。

  gcloud storage restore gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER

次のように置き換えます。

  • BUCKET_NAME: バケットの名前。例: my-bucket
  • OBJECT_NAME: すべてのバージョンを表示するオブジェクトの名前。
  • GENERATION_NUMBER: 復元する削除済み(復元可能)オブジェクトの世代番号。例: 1560468815691234。世代番号を指定しない場合は、最新バージョンが復元されます。

all-versions フラグを使用してオブジェクトのすべてのバージョンを復元するなど、複数のオブジェクトを一括で復元するためのその他のオプションについては、gcloud storage restore リファレンスをご覧ください。

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して、POST Object リクエストで JSON API を呼び出します。

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/restore?generation=GENERATION_NUMBER"

    ここで

    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket
    • OBJECT_NAME は、削除済み(復元可能)オブジェクトの名前です。例: cat.jpeg
    • GENERATION_NUMBER は、復元する削除済み(復元可能)オブジェクトの世代番号です。例: 1560468815691234

バケット内の削除済み(復元可能)オブジェクトを一括で復元する

多数のオブジェクトを復元する場合や、復元するオブジェクトがわからない場合は、一括復元オペレーションを使用します。一括復元オペレーションは非同期で行われ、開始までに 1 時間以上かかる場合があります。

一括復元オペレーションは、バケットで長時間実行オペレーションを開始します。進行中に Google Cloud CLI で長時間実行オペレーションの一覧を表示すると、一括復元オペレーションの詳細とステータスを確認できます。

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、復元するオブジェクトを含むバケットを探します。

  3. バケットに関連付けられたバケット オーバーフロー メニュー()をクリックし、[復元ジョブの作成] を選択します。

    [復元ジョブの作成] ペインが開きます。

  4. [復元する削除済み(復元可能)のオブジェクトを選択する] セクションで、復元するオブジェクトの削除期間を選択します。

  5. (省略可)[glob パターンでフィルタ] を選択して glob パターンを入力し、glob パターンの条件を満たすオブジェクトのみを復元します。

  6. (省略可)[復元オプション] で、別の復元動作に切り替えます。

  7. [作成] をクリックします。

一括復元オペレーションの進行状況を確認するには、Google Cloud コンソールのヘッダーにある通知ボタン()をクリックします。

コマンドライン

一括復元オペレーションを使用してバケット内のすべてのオブジェクトを復元するには、gcloud storage restore コマンドを使用します。

次のコマンドは、一括復元オペレーションを実行して、特定の期間に削除されたバケットのすべてのオブジェクトを非同期で復元します。

  gcloud storage restore gs://BUCKET_NAME/** \
      --async --deleted-after-time=DELETED_AFTER_TIME \
      --deleted-before-time=DELETED_BEFORE_TIME

次のように置き換えます。

  • BUCKET_NAME: バケットの名前。例: my-bucket
  • DELETED_AFTER_TIME: 復元するオブジェクトの削除期間の開始日を指定するオプションの引数。例: 2022-12-01
  • DELETED_BEFORE_TIME: 復元するオブジェクトの削除期間の終了日を指定するオプションの引数。例: 2022-12-21

    成功すると、このコマンドは一括復元オペレーションに関連付けられた長時間実行オペレーションの ID を返します。長時間実行オペレーションの詳細を取得したり、一括復元オペレーションの完了前に長時間実行オペレーションをキャンセルしたりすることができます。詳細については、長時間実行オペレーションを使用するをご覧ください。

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して、POST Object リクエストで JSON API を呼び出します。

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/bulkRestore"

    BUCKET_NAME は、該当するバケットの名前です。例: my-bucket

成功すると、このコマンドは一括復元オペレーションに関連付けられた長時間実行オペレーションの ID を返します。長時間実行オペレーションの詳細を取得したり、一括復元オペレーションの完了前に長時間実行オペレーションをキャンセルしたりすることができます。詳細については、長時間実行オペレーションを使用するをご覧ください。

長時間実行オペレーションを使用して一括復元を行う

一括復元オペレーションを行うと、長時間実行オペレーションが開始されます。一括復元オペレーションの詳細とステータスを確認するために、長時間実行オペレーションを取得して一覧表示することができます。また、一括復元オペレーションが実行されているときに、長時間実行オペレーションを削除して一括復元オペレーションをキャンセルすることもできます。

一括復元オペレーションなど、Cloud Storage のオペレーションによって開始される長時間実行オペレーションの使用方法については、長時間実行オペレーションを使用するをご覧ください。

次の例は、一括復元オペレーションから返される長時間実行オペレーションを示しています。

done: false
{
  "kind": "storage@operation",
  "name": "projects/_/buckets/my-bucket/operations/CiQyODRlMTY0My0wNGExLTQ3MWItOTE2Zi1hZmQ0ZmM4ZDc4MjQQAg",
  "metadata": {
    "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsMetadata",
    "commonMetadata": {
      "type": "bulk-restore-objects",
      "createTime": "2023-10-20T21:08:11.289Z",
      "updateTime": "2023-10-20T21:18:37.583Z",
      "endTime": "2023-10-20T21:18:37.583Z",
      "requestedCancellation": false,
      "progressPercent": -1,
    },
    "allow_overwrite": false,
    "matchGlobs": ["*"],
    "succeededCount": "0",
    "failedCount": "0",
    "skippedCount": "0",
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsResponse"
  }
}

次のステップ