对象删除简介

删除不再需要的对象有助于降低存储费用、满足数据保留要求,并使存储桶井井有条。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 不支持基于 ETag、Last-Modified 或 Size 的条件删除。包含这些参数的请求会返回 HTTP 400 Bad Request 状态代码。如需在 Cloud Storage 中执行条件操作,请使用 x-goog-if-generation-match 或 x-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 控制台
使用内置跟踪功能异步删除数百万或数十亿个对象 批量对象删除 存储批量操作
根据条件(例如存储时间或存储类别)自动删除对象 批量对象删除 对象生命周期管理

后续步骤