本页面介绍如何列出和恢复软删除的存储桶。
概览
存储桶被软删除后,在其硬删除时间到来之前由 Cloud Storage 保留,并且在软删除状态下无法修改。硬删除时间至少与存储桶对象的最晚硬删除时间一样长。硬删除时间过去后,Cloud Storage 会永久删除存储桶。恢复软删除的存储桶后,该存储桶会恢复为当前状态,并且删除时存储桶中已有的对象也可以恢复。
注意事项
为了防止恶意删除,软删除的存储桶在其完整的软删除保留时长结束后才能被永久删除。
存储桶被软删除后,您必须先恢复该存储桶,然后才能列出或恢复其中的软删除对象。
如需恢复软删除的存储桶,您必须知道该存储桶的世代编号。如需检索软删除存储桶的世代编号,请参阅列出软删除的存储桶。
只有在没有同名的当前存储桶时,才能恢复软删除的存储桶。如果您或其他任何人创建的存储桶与软删除的存储桶同名,则在删除新存储桶之前,您无法恢复软删除的存储桶。
使用 gcloud CLI 或 JSON API 恢复软删除的存储桶时,该存储桶中的对象不会恢复。如需恢复软删除的对象,您需要在恢复软删除的存储桶后执行对象恢复操作。
当您恢复带标记的软删除存储桶时,标记绑定可能无法恢复。为避免数据丢失,当您恢复具有标记绑定的软删除存储桶时,我们建议您检查以确保存储桶的标记绑定已恢复。如果存储桶的标记绑定未恢复,您需要手动将未恢复的标记绑定到存储桶。
所需权限
如需获得恢复软删除的存储桶所需的权限,请让您的管理员为您授予 Cloud Storage 项目的 Storage Admin (roles/storage.admin
) IAM 角色。
此预定义角色包含恢复软删除的存储桶所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
恢复软删除的存储桶需要以下权限:
-
storage.buckets.list
-
storage.buckets.restore
-
使用 Google Cloud 控制台恢复软删除的存储桶时,恢复对象:
-
storage.objects.restore
-
storage.objects.create
-
列出软删除的存储桶
您可以执行列出操作来检索软删除存储桶的元数据。
请按照以下说明列出项目中软删除的存储桶:
控制台
- 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
点击查看选项。
选择仅软删除的存储桶。
点击保存。
系统会显示软删除的存储桶列表。如果软删除的存储桶有多个世代,则每个存储桶世代都会显示在单独的一行中。
命令行
如需列出软删除的存储桶,请使用 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"
恢复软删除的存储桶
请按照以下说明恢复软删除的存储桶。
使用 Google Cloud 控制台恢复软删除的存储桶时,您还可以恢复该存储桶中已有的软删除对象。
控制台
- 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中显示软删除的存储桶(如果尚未显示)。如需了解相关步骤,请参阅列出软删除的存储桶。
在要恢复的存储桶对应的行中,点击恢复。
如果存储桶有多个世代,请在指定存储桶世代标签页上选择要恢复的世代。
点击指定要恢复的对象标签页。
在指定要恢复的对象部分,选择是否要恢复存储桶中已有的软删除对象。您可以使用以下选项:
不恢复对象。
如果需要,您稍后可以恢复软删除的对象。
恢复所有对象。
恢复符合条件的对象。执行以下操作:
选择要从中恢复对象的时间范围。
可选:如需仅恢复与 glob 模式匹配的对象,请选择按 glob 模式过滤,然后输入 glob 模式。
可选:在其他选项部分中指定其他恢复行为。
点击恢复。
Cloud Storage 会将软删除的存储桶恢复为有效状态。
如果您恢复存储桶中的对象,Cloud Storage 会为这些对象创建批量恢复操作。该操作是异步进行的,可能需要一个小时或更长时间才能开始。您可以点击 Google Cloud 控制台标题中的通知按钮 (notifications) 来跟踪操作的进度。或者,您可以使用 gcloud CLI 跟踪相关长时间运行的操作的状态。
命令行
如需恢复软删除的存储桶,请使用 gcloud storage restore
命令:
gcloud storage restore gs://BUCKET_NAME#GENERATION_NUMBER
替换以下内容:
BUCKET_NAME
:要恢复的软删除存储桶的名称。GENERATION_NUMBER
:要恢复的软删除存储桶的永久性唯一世代编号。如需获取存储桶的世代编号,请参阅列出软删除的存储桶。
Cloud Storage 会将软删除的存储桶恢复为有效状态。请注意,恢复存储桶不会恢复存储桶中已有的对象。如需恢复软删除的对象,请参阅恢复软删除的对象。
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
是要恢复的软删除存储桶的永久性唯一世代编号。如需获取存储桶的世代编号,请参阅列出软删除的存储桶。
Cloud Storage 会将软删除的存储桶恢复为有效状态。 请注意,恢复存储桶不会恢复存储桶中的对象。如需恢复软删除的对象,请参阅恢复软删除的对象。