对象删除简介

删除不再需要的对象有助于您降低存储费用、遵守数据保留要求并保持存储桶井井有条。Cloud Storage 支持两种主要的对象删除方法:

  • 单对象删除:删除单个对象以进行有针对性的更新。
  • 批量删除对象:同时或按自动安排的时间表删除多个对象。

对于每种删除方法,Cloud Storage 都提供了各种工具,以便您手动、以编程方式或通过自动化政策删除对象。请查看这些删除方法和可用工具,以便为您的工作负载选择最佳方法。

如需了解如何删除对象的分步说明,请参阅删除对象

单对象删除

单对象删除功能可让您精确控制特定数据。当您需要立即对存储桶的数据执行有针对性的更新时,通常会删除单个对象。单对象删除的常见应用场景包括:

  • 更正错误:移除您意外上传的对象或包含不正确数据的对象。

  • 清理:在完成任务后手动移除临时对象或日志。

  • 应用逻辑:在发生应用事件(例如用户删除个人资料照片)时自动移除对象。

  • 安全性和合规性:删除对象以移除敏感信息。

用于删除单个对象的工具

如需从存储桶中删除单个对象,请使用以下任一工具。每种工具都会针对每个对象发送单独的 DELETE 请求。

工具 说明
Google Cloud 控制台 在 Google Cloud 控制台中删除单个对象。
Google Cloud CLI 使用 gcloud storage rm 命令删除对象。
客户端库 使用受支持的语言(例如 C++、C#、Go、Java、Node.js、PHP、Python 或 Ruby)以编程方式删除对象。
REST API 使用 JSON API 或 XML API 删除对象。

批量删除对象

批量删除对象功能旨在对大型数据集执行高效操作。使用批量删除功能来管理存储费用,并自动清理各个存储桶中的数据。批量删除对象的常见应用场景包括:

  • 费用优化:移除不再需要用于运营的大型数据集,例如旧日志或临时 build 制品。

  • 合规性自动化:在特定保留期限(例如 30 天)后自动删除对象,从而强制执行数据保留政策。

  • 存储桶迁移或停用:在迁移数据或关闭项目时,清除数百万或数十亿个对象。

  • 数据流水线清理:在流水线生成最终报告或数据集后,移除中间处理对象。

用于批量删除对象的工具

如需批量删除对象,请使用以下任一工具。与单个请求相比,这些工具经过优化,可实现更高的吞吐量并减少开销。

工具 说明
Google Cloud 控制台 以交互方式删除最多 100 万个对象。在您发起删除请求后,Cloud Storage 会在后台处理删除操作。您可以点击 Google Cloud 控制台标题中的通知按钮 () 来检查批量删除的状态。
Google Cloud CLI 使用 gcloud storage rm --recursive 命令删除具有相同前缀的所有对象。此命令适合通过命令行进行中小型批量删除。
多对象删除 XML API

通过单个 POST 请求以编程方式删除最多 1,000 个对象。多对象删除 XML API 可与 Amazon S3 API 互操作。因此,您可以使用现有的 Amazon S3 工具、库和工作流来管理 Cloud Storage 中的对象。如果您要迁移数据或跨这两个平台管理资源,XML API 会很有用。

当您使用 XML API 删除多个对象时,Cloud Storage 会生成数据访问审核日志。 如果您启用数据访问审核日志,这些日志将包含有关总体请求和单个对象删除的详细信息。如需了解详情,请参阅多对象删除 XML API 的审核日志

多对象删除 XML API 具有以下限制:

  • 绕过监管模式:与 Amazon S3 不同,Cloud Storage 不允许在删除期间绕过监管模式。在 Amazon S3 中,您可以通过指定 x-amz-bypass-governance-retention 标头来删除以管理模式锁定的对象。Cloud Storage 会严格执行对象保留政策,以确保数据不可变。
  • 删除标记:Cloud Storage 不支持 Amazon S3 删除标记,无论是单对象删除还是多对象删除。如需在 Cloud Storage 中恢复非当前对象,您必须使用 XML API PUT 请求将特定版本复制到现行对象。
  • 条件删除操作:Cloud Storage 多对象删除 XML API 不支持基于 ETagLast-ModifiedSize 的条件删除。包含这些参数的请求会返回 HTTP 400 Bad Request 状态代码。如需在 Cloud Storage 中执行条件操作,请使用 x-goog-if-generation-matchx-goog-if-metageneration-match 等标头。
存储批量操作

使用具有内置跟踪和重试功能的全代管式服务,根据清单文件删除多达数十亿个对象。

您可以使用存储批量操作来执行以下任务:

  • 删除数百万或数十亿个对象。
  • 通过内置的跟踪、重试和错误处理功能提高可靠性。
  • 与单独编写 API 调用脚本相比,可减少客户端开销。
对象生命周期管理 根据用户定义的生命周期规则(例如对象存储时间或存储类别)自动删除对象。如需批量删除对象,请在存储桶中配置对象生命周期管理规则。将条件 Age 设置为 0 天,并将操作设置为 Delete。设置规则后,Cloud Storage 会异步执行批量删除操作
批量 API 请求 在使用受支持的客户端库或直接使用 JSON API 时,将多个删除请求批处理为一个 HTTP 请求。这种批处理方式可减少客户端连接开销和延迟时间。

选择删除方法

删除对象的最佳方法和工具取决于对象数量和工作流程要求。使用以下决策矩阵为您的使用情形选择一种方法:

使用场景 删除方法 推荐的工具
删除单个对象或少量特定对象 单对象删除 Google Cloud 控制台gcloud storage rm、客户端库或 REST API
在单个程序化请求中最多删除 1,000 个对象 批量删除对象 多对象删除 XML API、Amazon S3 CLI 或 Amazon S3 兼容的客户端库(例如 Boto3)
删除具有共同前缀的对象 批量删除对象 gcloud storage rm --recursive
在浏览器中以交互方式删除最多 100 万个对象 批量删除对象 Google Cloud 控制台
使用内置跟踪功能异步删除数百万或数十亿个对象 批量删除对象 存储批量操作
根据条件(例如存储时间或存储类别)自动删除对象 批量删除对象 对象生命周期管理

后续步骤