对象删除简介

删除不再需要的对象有助于您降低存储费用、遵守数据保留要求,并让存储分区保持井井有条。您可以根据自己的规模和自动化需求,选择多种方法来手动、以程序化方式或通过自动化政策删除对象。

本页介绍了可用于从存储分区中删除对象的方法,并帮助您为自己的任务选择合适的方法。

如需了解如何删除对象,请参阅删除对象

单对象删除

单对象删除功能可让您精确控制特定数据。当您需要立即对存储桶的数据执行有针对性的更新时,通常会删除单个对象。以下是删除单个对象的常见原因:

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

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

  • 应用逻辑:在应用中执行操作(例如删除个人资料照片)时自动移除文件。

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

用于删除单个对象的工具

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

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

批量删除对象

批量删除方法旨在对大型数据集执行高效操作。使用批量删除功能来管理存储费用,并自动执行存储分区中的数据健全度操作。以下是删除多个对象的常见原因:

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

  • 合规性自动化:通过在特定时间段(例如 30 天)后删除对象来自动强制执行数据保留政策。

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

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

用于批量删除对象的工具

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

工具 说明
使用 XML API 删除多个对象

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

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

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

  • 绕过管理模式:Cloud Storage 不支持在任何删除操作期间绕过管理模式,而 Amazon S3 允许通过指定 x-amz-bypass-governance-retention 标头来删除受管理类型锁定的对象。Cloud Storage 会强制执行对象保留政策,以帮助实现数据不可变性。
  • 删除标记:Cloud Storage 不支持 Amazon S3 删除标记,无论是单对象删除还是多对象删除。如需在 Cloud Storage 中恢复非当前对象,您需要使用 PUT 请求将所需版本复制到有效对象。
  • 有条件删除:Cloud Storage 多对象删除 API 不支持基于 ETagLast-ModifiedSize 的有条件删除。包含这些参数的请求会导致 400 错误。对于 Cloud Storage 中的条件操作,请使用 x-goog-if-generation-matchx-goog-if-metageneration-match 等标头。
Google Cloud 控制台 在删除高达一百万个对象时,建议使用 Google Cloud 控制台。在您发起删除请求后,系统会在后台进行该过程。您可以点击 Google Cloud 控制台标题中的通知按钮 () 来检查批量删除的状态。
存储批量操作

一种全代管式服务,可根据清单文件执行删除操作。适合删除多达数十亿个对象,并具有内置的跟踪和重试功能。

如果您想执行以下操作,建议使用存储批量操作:

  • 删除数百万或数十亿个对象。
  • 通过内置的跟踪、重试和错误处理功能提高可靠性。
  • 与编写单个 API 调用的脚本相比,可减少客户端开销。
gcloud storage rm --recursive 用于删除共享同一前缀的所有对象的 Google Cloud CLI 命令。适合使用 CLI 执行中小型规模的批量任务。
对象生命周期管理 一项服务器端功能,可根据您定义的规则(例如对象存储时间或存储类别)自动删除对象。如需批量删除存储桶中的对象,请针对存储桶设置生命周期配置规则,其中条件为 Age 设置为 0 天,操作设置为 delete。设置规则后,Cloud Storage 会异步执行批量删除操作
批量请求 使用某些客户端库或直接使用 JSON API 时,您可以批处理删除请求,以减少需要的 HTTP 连接数量。

选择删除方法

用于删除对象的工具取决于您需要删除的对象数量和原因。请根据以下指南为您的使用场景选择一种方法:

  • 如果您需要删除一个或仅几个特定对象,请使用Google Cloud 控制台、gcloud storage rm 或使用客户端库或 REST API 的单个 API 调用。如需了解详情,请参阅删除单个对象
  • 如果您需要在单个 API 请求中删除最多 1,000 个对象,请使用多对象删除 XML API、Amazon S3 CLI 或与 S3 兼容的客户端库(例如 Boto3)。如需了解详情,请参阅批量删除对象
  • 如果要删除具有相同名称前缀的多个对象,请使用 gcloud storage rm --recursive 命令。如需了解详情,请参阅使用 Google Cloud CLI 批量删除对象
  • 如果您需要删除数百万或数十亿个对象,请使用存储批量操作,以便可靠地进行大规模删除。
  • 如果您需要在对象满足特定条件时自动删除对象,请使用对象生命周期管理

后续步骤