You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何一次性批量删除GS存储桶中的多个blob对象

GCS 批量删除指定对象实现方案

不需要手动写for循环逐次发起单对象删除请求,GCS官方工具/客户端库已经封装了原生批量删除能力,单次请求即可处理多个对象。注意你提供的blob路径前缀带有多余的/,GCS对象名不需要开头的斜杠,处理时先做截断即可。

方案1:Python 客户端实现(服务端批量请求)

使用GCS官方Python客户端的批量上下文管理器,所有删除操作会被打包为单个批量请求发送到服务端,不会逐个发起独立删除请求,代码示例:

from google.cloud import storage

# 初始化客户端,替换为实际使用的存储桶名称
client = storage.Client()
bucket = client.get_bucket("你的存储桶名称")

# 持有的原始blob路径列表
blob_paths = [
    '/26/06/2022/updwx/asr-mobile/1656287241091_hb.opus',
    '/26/06/2022/rrvjz/asr-mobile/1656287214693_hb.opus',
    '/26/06/2022/ledum/asr-mobile1656286851212_hb.opus',
    '/26/06/2022/atveh/asr-mobile1656286708558_hb.opus',
    '/25/06/2022/dlivh/asr-mobile/1656170162472_hb.opus',
]

# 批量上下文内的操作会自动打包为批量请求
with client.batch():
    for path in blob_paths:
        # 去掉路径开头的多余斜杠,得到真实GCS对象名
        blob_name = path.lstrip("/")
        bucket.delete_blob(blob_name)

别看到代码里有for循环就觉得是逐个删——这个循环只是在本地往批量请求容器里塞待删除的对象条目,全程不会发单个删除请求,所有删除操作会在with块结束时打包成一个请求发给GCS服务端,完全符合一次性批量删除的要求。GCS单次批量请求最多支持100个对象,当前的对象数量远低于阈值,无需拆分。

方案2:命令行gsutil 一次性删除

如果是运维/脚本场景,直接使用gsutil原生命令即可,工具会自动调用批量删除接口,不需要手动写循环逻辑,执行命令如下:

# 替换为实际存储桶名称,所有对象路径已去掉开头的多余斜杠
gsutil rm \
  gs://你的存储桶名称/26/06/2022/updwx/asr-mobile/1656287241091_hb.opus \
  gs://你的存储桶名称/26/06/2022/rrvjz/asr-mobile/1656287214693_hb.opus \
  gs://你的存储桶名称/26/06/2022/ledum/asr-mobile1656286851212_hb.opus \
  gs://你的存储桶名称/26/06/2022/atveh/asr-mobile1656286708558_hb.opus \
  gs://你的存储桶名称/25/06/2022/dlivh/asr-mobile/1656170162472_hb.opus

执行后会一次性返回所有对象的删除结果,不会逐个发起删除请求。


内容的提问来源于stack exchange,提问作者Ankit Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:06:29