本頁說明如何列出及還原已暫時刪除的 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:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
按一下「畫面顯示設定」。
選取「僅限虛刪除的 bucket」。
按一下 [儲存]。
系統會列出虛刪除的 bucket。如果虛刪除的值區有多個世代,每個值區世代會顯示在不同的資料列中。
指令列
如要列出虛刪除的 bucket,請使用 gcloud storage ls 指令:
gcloud storage ls --buckets --soft-deleted --full
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
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 中虛刪除的物件。
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中顯示虛刪除的 bucket (如果尚未顯示)。如需步驟,請參閱「列出虛刪除的 bucket」。
在要還原的值區資料列中,按一下「還原」。
如果 bucket 有多個版本,請在「指定 bucket 版本」分頁中,選取要還原的版本。
按一下「Specify objects to restore」(指定要還原的物件) 分頁標籤。
在「Specify objects to restore」(指定要還原的物件) 區段中,選取是否要還原 bucket 中虛刪除的物件。可用選項如下所示:
不還原物件。
日後如有需要,可以還原虛刪除的物件。
還原所有物件。
還原符合條件的物件。請執行下列步驟:
選取要還原物件的日期範圍。
選用:如要只還原符合 glob 模式的物件,請選取「依 glob 模式篩選」並輸入 glob 模式。
選用:在「其他選項」部分指定其他還原行為。
按一下「還原」。
Cloud Storage 會將虛刪除的 bucket 還原為有效狀態。
如果您還原 bucket 中的物件,Cloud Storage 會為物件建立大量還原作業。這項作業會以非同步方式執行,可能需要一小時以上才會開始。如要追蹤作業進度,請按一下 Google Cloud 控制台標頭中的「Notifications」(通知) 按鈕 (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
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
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 中的物件。如要還原虛刪除的物件,請參閱「還原虛刪除的物件」。