删除不再需要的对象有助于您降低存储费用、遵守数据保留要求并保持存储桶井井有条。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 控制台标题中的通知按钮 ( notifications) 来检查批量删除的状态。 |
| Google Cloud CLI | 使用 gcloud storage rm --recursive 命令删除具有相同前缀的所有对象。此命令适合通过命令行进行中小型批量删除。 |
| 多对象删除 XML API | 通过单个 当您使用 XML API 删除多个对象时,Cloud Storage 会生成数据访问审核日志。 如果您启用数据访问审核日志,这些日志将包含有关总体请求和单个对象删除的详细信息。如需了解详情,请参阅多对象删除 XML API 的审核日志。 多对象删除 XML 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 控制台 |
| 使用内置跟踪功能异步删除数百万或数十亿个对象 | 批量删除对象 | 存储批量操作 |
| 根据条件(例如存储时间或存储类别)自动删除对象 | 批量删除对象 | 对象生命周期管理 |