python - 从 GCS 存储桶中的文件夹中删除数百万个对象

标签 python google-cloud-platform google-cloud-storage

我有一个要求,需要从 GCS 存储桶中的文件夹中删除数百万个对象。 这是我当前的实现。

bucket = self.storage_client.bucket(bucket_name)
blobs = bucket.list_blobs(prefix=folder_name)
            
for blob in blobs:
    blob.delete()

由于对象数量较多,列出并不是正确的方式。需要找到一种方法来做一些多线程的方法。

最佳答案

如果你想删除整个Bucket对象,将Bucket的生命周期设置为0是一种快速删除的方法。

但是当您要删除文件夹时,此方法不适用(这与仅删除整个对象的某些部分相同)。

如果您要删除的文件夹占据了整个 objcet 的大部分,我认为通过生命周期管理删除整个存储桶并使用剩余部分创建新存储桶可能是更快的方法。

编辑)带有-m标志的gsutil rm命令可以多线程删除。这也可能是一种更快的方法。

关于python - 从 GCS 存储桶中的文件夹中删除数百万个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65696282/

相关文章:

python - 导入父模块包

python - 由于无法进行就绪检查,因此Google App Engine部署失败

machine-learning - GCE VM无法连接到TPU

android - 如何将我的 SQLITE 数据库保存到 Google 云端硬盘?

java - 如何在 Flink 中为 Google Cloud Storage 创建 RecoverableWriter

python - 通过鼠标单击获取 matplotlib 绘图图 python 的坐标

python - 为桌面环境分发 Docker 容器应用程序

python - 像目录一样写入 Google Cloud 存储桶?

node.js - 通过 Firebase 在 Google Cloud 中签名错误

python - 如何使用 MySQL executemany 更新 Python 中的列表列表?