使用虛刪除的 bucket

虛刪除功能簡介

本頁說明如何列出及還原已暫時刪除的 buckets。

總覽

bucket 虛刪除後,Cloud Storage 會保留 bucket,直到硬刪除時間為止,且 bucket 處於虛刪除狀態時無法修改。實刪除時間至少要與 bucket 物件的最新實刪除時間相同。實刪除時間過後,Cloud Storage 會永久刪除 bucket。還原虛刪除的值區後,值區會恢復為使用中狀態,且刪除時位於值區中的物件也可以還原。

注意事項

  • 為防範惡意刪除,虛刪除的值區必須保留至虛刪除保留期限屆滿,才能永久刪除。

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

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

  • 只有在沒有同名使用中 bucket 的情況下,才能還原虛刪除的 bucket。如果您或其他人建立的 bucket 與虛刪除的 bucket 同名,就必須先刪除新 bucket,才能還原虛刪除的 bucket。

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

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

所需權限

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

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

所需權限

必須具備下列權限,才能還原虛刪除的值區:

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

列出虛刪除的 bucket

您可以執行清單作業,擷取虛刪除 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 呼叫 JSON API,並透過 Buckets: list 要求使用 softDeleted 查詢參數:

    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。

還原虛刪除的 bucket

請按照下列操作說明,還原虛刪除的 bucket。

使用 Google Cloud 控制台還原虛刪除的 bucket 時,也可以還原 bucket 中虛刪除的物件。

控制台

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

    前往「Buckets」(值區) 頁面

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

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

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

  5. 按一下「Specify objects to restore」(指定要還原的物件) 分頁標籤。

  6. 在「Specify objects to restore」(指定要還原的物件) 區段中,選取是否要還原 bucket 中虛刪除的物件。可用選項如下所示:

    • 不還原物件。

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

    • 還原所有物件。

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

      1. 選取要還原物件的日期範圍。

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

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

  8. 按一下「還原」。

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

    如果您還原 bucket 中的物件,Cloud Storage 會為物件建立大量還原作業。這項作業會以非同步方式執行,可能需要一小時以上才會開始。如要追蹤作業進度,請按一下 Google Cloud 控制台標頭中的「Notifications」(通知) 按鈕 ()。或者,您也可以使用 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 是要還原的 bucket 名稱。例如:my-bucket。

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

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

後續步驟