本页面介绍了如何从 Cloud Storage 中的存储桶删除对象。
所需的角色
如需获得删除对象所需的权限,请让您的管理员向您授予包含待删除对象的存储桶的 Storage Object User (roles/storage.objectUser
) IAM 角色。
如果您打算使用 Google Cloud 控制台完成本页面上的任务,请让您的管理员授予您 Storage Admin (roles/storage.admin
) 角色,而不是 Storage Object User (roles/storage.objectUser
) 角色;或者在授予 Storage Object User (roles/storage.objectUser
) 角色后再授予 Viewer (roles/viewer
) 基本角色。
这些角色可提供删除对象所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.objects.delete
storage.objects.list
- 只有在使用 Google Cloud 控制台时或者在 Google Cloud CLI 中使用
--recursive
标志或通配符时,才需要此权限。
- 只有在使用 Google Cloud 控制台时或者在 Google Cloud CLI 中使用
storage.buckets.list
- 只有在使用 Google Cloud 控制台执行本页面上的说明时,才需要此权限。
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。
删除对象
完成以下步骤,从一个 Cloud Storage 存储桶中删除对象:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,点击包含待删除对象的存储桶的名称。
此时会打开“存储桶详情”页面,其中“对象”标签页已选中。
导航到可能位于文件夹中的对象。
点击要删除的每个对象对应的复选框。
您还可以点击文件夹对应的复选框,这将删除该文件夹中包含的所有对象。
点击删除按钮。
在出现的对话框中点击删除。
如果您一次性删除许多对象,则可以点击 Google Cloud 控制台中的通知图标来跟踪删除进度。Google Cloud 控制台可以在后台批量删除高达几百万个对象。
如需了解如何在 Google Cloud 控制台中获取有关失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用 Google Cloud CLI 命令 gcloud storage rm
:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME
其中:
BUCKET_NAME
是包含待删除对象的存储桶的名称,例如my-bucket
。OBJECT_NAME
是待删除对象的名称,例如pets/dog.png
。
如果成功,响应类似于以下示例:
Removing objects: Removing gs://example-bucket/file.txt... Completed 1/1
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
通过DELETE
请求调用 JSON API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
其中:
BUCKET_NAME
是包含待删除对象的存储桶的名称,例如my-bucket
。OBJECT_NAME
是要删除的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
通过DELETE Object
请求调用 XML API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
BUCKET_NAME
是包含待删除对象的存储桶的名称,例如my-bucket
。OBJECT_NAME
是要删除的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
批量删除对象
如果您要批量删除十万个或更多对象,切勿使用 gcloud storage
,因为此过程需要很长时间才能完成。请改为考虑以下方案之一:
对象生命周期管理功能可以删除任意数量的对象。如需使用此功能批量删除存储桶中的对象,请针对存储桶设置生命周期配置规则,其中条件为
Age
设置为 0 天,操作设置为delete
。设置规则后,Cloud Storage 会异步执行批量删除操作。在删除高达一百万个对象时,您也可以使用 Google Cloud 控制台。在您发起此类删除请求后,系统会在后台进行该过程。您可以点击 Google Cloud 控制台顶部的通知按钮 (notifications) 来检查批量删除的状态。
使用某些客户端库或直接使用 JSON API 时,您可以批处理删除请求,以减少需要建立的 HTTP 连接数量。
后续步骤
- 了解对象版本控制功能。
- 了解对象生命周期管理功能。
- 了解如何删除存储桶。