本页介绍了如何列出和恢复已软删除的存储桶。
概览
存储桶被软删除后,Cloud Storage 会将其保留在软删除保留时长内,并且在软删除状态下无法修改。软删除保留时长结束后,Cloud Storage 会永久删除存储桶及其对象。在删除时启用了软删除功能的存储分区可以在软删除保留时长内恢复。恢复软删除的存储桶后,该存储桶会恢复为有效状态,并且删除时存储桶中存在的对象也可以恢复。
注意事项
如需恢复软删除的存储桶,您必须知道该存储桶的生成号。如需检索已软删除存储桶的世代编号,请参阅列出已软删除的存储桶。
存储桶恢复操作不会恢复在删除时位于存储桶中的软删除对象。如需在已软删除的存储桶恢复后恢复软删除的对象,您需要执行对象恢复操作。
为防止恶意删除,在软删除的存储桶保留完整的软删除保留时长之前,您无法永久删除该存储桶。
存储桶被软删除后,您必须先恢复该存储桶,然后才能列出或恢复其中的软删除对象。
只有在没有同名有效存储桶的情况下,才能恢复软删除的存储桶。如果您或其他任何人创建的存储桶与软删除的存储桶同名,则在删除新存储桶之前,您无法恢复软删除的存储桶。
您无法恢复启用了分层命名空间的已软删除存储分区。
恢复包含标记的已软删除存储桶时,标记绑定可能无法恢复。为避免数据丢失,在恢复包含代码绑定的已软删除存储桶时,我们建议您检查以确保已恢复存储桶的代码绑定。如果未恢复存储桶的代码绑定,您需要手动将未恢复的代码绑定到存储桶。
所需权限
如需获得恢复已软删除的存储分区所需的权限,请让您的管理员为您授予 Cloud Storage 项目的 Storage Admin (roles/storage.admin
) IAM 角色。
此预定义角色可提供恢复已软删除的存储分区所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
恢复已软删除的存储分区需要以下权限:
-
storage.buckets.list
-
storage.buckets.restore
列出已软删除的存储分区
您可以执行列表操作来检索已软删除存储分区的元数据。
请按照以下说明列出项目中所有已软删除的存储分区:
命令行
如需列出所有已软删除的存储分区,请使用 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"
恢复软删除的存储桶
如需恢复已软删除的存储桶,请按照以下说明操作:
命令行
如需恢复已软删除的存储桶,请使用 gcloud storage restore
命令:
gcloud storage restore gs://BUCKET_NAME#GENERATION_NUMBER
替换以下内容:
BUCKET_NAME
:您要恢复的已软删除存储桶的名称。GENERATION_NUMBER
:您要恢复的已软删除存储桶的永久唯一世代编号。如需获取存储桶的生成版本号,请参阅列出已软删除的存储桶。
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 会将软删除的存储桶恢复为有效状态。请注意,恢复存储桶不会恢复在软删除时存储桶中存在的对象。如需恢复在删除时位于存储桶中的软删除对象,请参阅恢复软删除的对象。