使用虛刪除的 bucket

虛刪除功能總覽

本頁說明如何列出及還原已軟刪除的值區。

總覽

bucket 虛刪除後,Cloud Storage 會保留 bucket,直到實刪除時間為止,且 bucket 處於虛刪除狀態時無法修改。實刪除時間至少要與 bucket 物件的最新實刪除時間一樣長。實刪除時間過後,Cloud Storage 會永久刪除 bucket。還原虛刪除的 bucket 後,bucket 會恢復為使用中狀態,且 bucket 遭刪除時包含的物件也會一併還原。

注意事項

  • 為防範惡意刪除,虛刪除的 bucket 必須保留完整虛刪除保留時長,才能永久刪除。

  • 值區虛刪除後,您必須先還原值區,才能列出或還原其中的虛刪除物件。

  • 如要還原虛刪除的 bucket,您必須擁有 bucket 的版本編號。如要擷取虛刪除 bucket 的版本編號,請參閱「列出虛刪除的 bucket」。

  • 只有在沒有同名的有效值區時,才能還原已軟刪除的值區。如果您或其他人建立的 bucket 與虛刪除的 bucket 同名,就必須先刪除新 bucket,才能還原虛刪除的 bucket。

  • 使用 gcloud CLI 或 JSON API 還原已軟刪除的 bucket 時,bucket 中的物件不會還原。如要還原虛刪除的物件,請先還原虛刪除的 bucket,然後執行物件還原作業。

  • 還原含有標記的虛刪除值區時,標記繫結可能無法復原。為避免資料遺失,當您還原已軟刪除且含有標記繫結的值區時,建議檢查並確認值區的標記繫結已復原。如果儲存區的代碼繫結未復原,您必須手動將未復原的代碼繫結至儲存區

所需權限

如要取得還原虛刪除 bucket 所需的權限,請要求管理員授予您 Cloud Storage 專案的「Storage 管理員 」(roles/storage.admin) IAM 角色。

這個預先定義的角色具備還原暫時刪除的 bucket 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要還原已軟刪除的 bucket,必須具備下列權限:

  • storage.buckets.list
  • storage.buckets.restore
  • 使用 Google Cloud 控制台還原虛刪除值區時,請還原物件:
    • storage.objects.restore
    • storage.objects.create

列出虛刪除的 bucket

您可以執行清單作業,擷取軟刪除儲存空間的中繼資料。

請按照下列指示,列出專案中已軟刪除的 bucket:

控制台

  1. 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。

    前往「Buckets」(值區) 頁面

  2. 按一下「畫面顯示設定」

  3. 選取「僅限虛刪除的 bucket」

  4. 按一下 [儲存]

    系統會顯示已軟刪除的 bucket 清單。如果虛刪除的值區有多個世代,每個值區世代會顯示在不同的資料列中。

指令列

如要列出已軟刪除的 bucket,請使用 gcloud storage ls 指令:

gcloud storage ls --buckets --soft-deleted --full

REST API

JSON API

  1. 安裝並初始化gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 使用 cURL 透過使用 softDeleted 查詢參數的 Buckets: list 要求呼叫 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?project=PROJECT_IDENTIFIER&softDeleted=true"

    PROJECT_IDENTIFIER 替換為包含要列出暫時刪除值區的專案 ID 或編號。

還原虛刪除的 bucket

請按照下列操作說明還原已軟刪除的值區。

使用 Google Cloud 主控台還原虛刪除值區時,也可以還原該值區中的虛刪除物件。

控制台

  1. 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。

    前往「Buckets」(值區) 頁面

  2. 在 bucket 清單中顯示虛刪除的 bucket (如果尚未顯示)。如需相關步驟,請參閱「列出虛刪除的 bucket」。

  3. 在要還原的 bucket 資料列中,按一下「還原」

  4. 如果 bucket 有多個版本,請在「指定 bucket 版本」分頁中,選取要還原的版本。

  5. 按一下「指定要還原的物件」分頁標籤。

  6. 在「指定要還原的物件」部分,選取是否要還原 bucket 中虛刪除的物件。可用選項如下所示:

    • 不還原物件

      日後如有需要,您可以還原虛刪除的物件。

    • 還原所有物件

    • 還原符合條件的物件。請執行下列步驟:

      1. 選取要還原物件的時間範圍。

      2. 選用:如要只還原符合 glob 模式的物件,請選取「依 glob 模式篩選」,然後輸入 glob 模式。

  7. 選用:在「其他選項」部分指定其他還原行為。

  8. 按一下「還原」

    Cloud Storage 會將虛刪除的 bucket 還原為有效狀態。

    如果還原 bucket 中的物件,Cloud Storage 會為這些物件建立大量還原作業。這項作業會以非同步方式執行,可能需要一小時以上才會開始。如要追蹤作業進度,請按一下 Google Cloud 控制台標題中的「通知」按鈕 ()。或者,您也可以使用 gcloud CLI 追蹤相關長時間執行的作業的狀態。

指令列

如要還原虛刪除的 bucket,請使用 gcloud storage restore 指令:

  gcloud storage restore gs://BUCKET_NAME#GENERATION_NUMBER

更改下列內容:

  • BUCKET_NAME:要還原的軟刪除 bucket 名稱。

  • GENERATION_NUMBER:您要還原的虛刪除 bucket 永久專屬版本編號。如要取得 bucket 的版本編號,請參閱「列出虛刪除的 bucket」。

Cloud Storage 會將虛刪除的 bucket 還原為有效狀態。請注意,還原 bucket 不會還原 bucket 中的物件。如要還原虛刪除的物件,請參閱「還原虛刪除的物件」。

REST API

JSON API

  1. 安裝並初始化gcloud CLI,以便為 Authorization 標頭產生存取權杖。

  2. 使用 cURL 透過 Buckets: restore 要求呼叫 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/restore?generation=GENERATION_NUMBER

    其中:

    • BUCKET_NAME 是要還原的值區名稱。例如:my-bucket

    • GENERATION_NUMBER 是要還原的虛刪除 bucket 的永久不重複版本編號。如要取得 bucket 的版本編號,請參閱「列出虛刪除的 bucket」。

    Cloud Storage 會將虛刪除的 bucket 還原為有效狀態。 請注意,還原值區不會還原值區中的物件。如要還原虛刪除的物件,請參閱「還原虛刪除的物件」。

後續步驟