python - 如何批量删除桶

标签 python google-cloud-storage

如何批量删除桶?

这是我尝试过的。

def deleteAllBuckets():
    batch = storage_client.batch()
    with batch:
        for bucket in storage_client.list_buckets():
            bucket.delete()

从技术上讲它是有效的,因为存储桶被删除了,但我不相信我发送的是单个批处理请求。看起来我正在为每个存储桶发送一个请求。

将上述代码与 Google Cloud Datastore 中的批处理请求进行比较

def deleteAllEntities():
    query = datastore_client.query(kind="Charge")
    queryIter = query.fetch()

    batch = datastore_client.batch()
    with batch:
        for entity in queryIter:
            batch.delete(entity.key)

您可以看到我正在对批处理对象调用删除方法。使用存储代码,我在存储桶对象上调用 delete。不幸的是,云存储 python API 没有任何示例。

最佳答案

当您使用上下文管理器时,它会自动将请求添加到批处理中,并在退出上下文管理器时执行。

但是,我在您的代码中看到的问题是您在批处理上下文管理器中调用列表桶。我想你想在外面创建桶迭代器。像这样:

def deleteAllBuckets():
    buckets_iterator = storage_client.list_buckets()
    batch = storage_client.batch()
    with batch:
        for bucket in buckets_iterator:
            bucket.delete()

关于python - 如何批量删除桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949570/

相关文章:

Python Pandas : Assign lists with different lengths as a row to pandas dataframe

python - 从不同的类调用一个类中的函数

python - 绘制的混淆矩阵值相互重叠,总类别 90

python - 如何在 Python Django shell 中使用自定义模块中的函数

python - 我可以在数组中不重复地打印值吗

google-cloud-platform - 抽象存储机制的python客户端库(GCS/local)

java - Google Cloud Storage createOrReplace 文件已损坏(大小不同,...)

javascript - GCS 中的 Google Cloud Storage Bucket : XML error when reloading an Ember. js 应用

azure - 如何将 csv 文件从 Google Cloud Storage 传输到 Azure Datalake Store

javascript - 如何从视频元素中删除“下载”按钮?