本頁說明如何列出及還原已軟刪除的值區。
總覽
bucket 虛刪除後,Cloud Storage 會保留 bucket,直到硬刪除時間為止,且 bucket 處於虛刪除狀態時無法修改。實刪除時間至少要與該 bucket 物件的最新實刪除時間一樣長。實刪除時間過後,Cloud Storage 會永久刪除 bucket。還原虛刪除的值區後,值區會恢復為有效狀態,且刪除時值區中的物件也會一併還原。
注意事項
為防範惡意刪除,虛刪除的 bucket 必須保留完整虛刪除保留期限,才能永久刪除。
值區虛刪除後,您必須先還原值區,才能列出或還原其中的虛刪除物件。
如要還原虛刪除的 bucket,您必須擁有 bucket 的代號。如要擷取虛刪除 bucket 的世代編號,請參閱「列出虛刪除的 bucket」。
只有在沒有同名的有效值區時,才能還原已軟刪除的值區。如果您或其他人建立的 bucket 與虛刪除的 bucket 同名,就必須先刪除新 bucket,才能還原虛刪除的 bucket。
使用 gcloud CLI 或 JSON API 還原虛刪除的 bucket 時,bucket 中的物件不會還原。如要還原虛刪除的物件,請先還原虛刪除的 bucket,然後執行物件還原作業。
還原含有標記的虛刪除值區時,標記繫結可能無法復原。為避免資料遺失,當您還原已軟刪除且含有標記繫結的值區時,建議檢查並確認值區的標記繫結已復原。如果儲存區的代碼繫結未復原,您必須手動將未復原的代碼繫結至儲存區。
所需權限
如要取得還原暫時刪除值區所需的權限,請要求管理員為您授予 Cloud Storage 專案的儲存空間管理員 (roles/storage.admin
) IAM 角色。
這個預先定義的角色具備還原已軟刪除的 buckets 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要還原已軟刪除的 bucket,必須具備下列權限:
-
storage.buckets.list
-
storage.buckets.restore
-
使用 Google Cloud 控制台還原虛刪除 bucket 時,請還原物件:
-
storage.objects.restore
-
storage.objects.create
-
列出虛刪除的 bucket
您可以執行清單作業,擷取軟刪除儲存空間的中繼資料。
請按照下列指示,列出專案中已軟刪除的值區:
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
按一下「畫面顯示設定」。
選取「僅限虛刪除的 bucket」。
按一下 [儲存]。
系統會顯示已軟刪除的 bucket 清單。如果虛刪除的值區有多個世代,每個值區世代會顯示在不同的資料列中。
指令列
如要列出已軟刪除的 buckets,請使用 gcloud storage ls
指令:
gcloud storage ls --buckets --soft-deleted --full
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過GET
Bucket 要求呼叫 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?softDeleted=true"
還原虛刪除的 bucket
請按照下列操作說明還原已軟刪除的值區。
使用 Google Cloud 主控台還原虛刪除值區時,也可以還原該值區中的虛刪除物件。
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
在 bucket 清單中顯示虛刪除的 bucket (如果尚未顯示)。如需步驟,請參閱「列出虛刪除的 bucket」。
在要還原的 bucket 資料列中,按一下「還原」。
如果 bucket 有多個版本,請在「指定 bucket 版本」分頁中,選取要還原的版本。
按一下「指定要還原的物件」分頁標籤。
在「指定要還原的物件」部分,選取是否要還原 bucket 中虛刪除的物件。可用的選項如下:
不還原物件。
日後如有需要,您可以還原虛刪除的物件。
還原所有物件。
還原符合條件的物件。請執行下列步驟:
選取要還原物件的時間範圍。
選用:如要只還原符合 glob 模式的物件,請選取「依 glob 模式篩選」,然後輸入 glob 模式。
選用:在「其他選項」部分指定其他還原行為。
按一下「還原」。
Cloud Storage 會將虛刪除的 bucket 還原為使用中狀態。
如果還原 bucket 中的物件,Cloud Storage 會為這些物件建立大量還原作業。這項作業會以非同步方式執行,可能需要一小時以上才會開始。如要追蹤作業進度,請按一下控制台標題中的「通知」按鈕 (notifications) 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
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
Bucket 要求呼叫 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 還原為使用中狀態。請注意,還原值區不會還原值區中的物件。如要還原虛刪除的物件,請參閱「還原虛刪除的物件」。