如何批量删除bucket

2024-09-30 10:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

如何批量删除存储桶?你知道吗

这是我试过的。你知道吗

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

从技术上讲,它是有效的,因为bucket被删除了,但是我不确信我发送的是单个批处理请求。看起来我每个桶发一个请求。你知道吗

将上述代码与Google云数据存储中的批处理请求进行比较

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方法。使用存储代码,我对bucket对象调用delete。不幸的是,云存储pythonapi没有任何示例。你知道吗


Tags: 对象代码inclientforbucketdefwith
1条回答
网友
1楼 · 发布于 2024-09-30 10:27:41

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

但是,我看到代码中的问题是,您在批处理上下文管理器中调用列表存储桶。我认为您需要在外部创建bucket迭代器。像这样:

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

相关问题 更多 >

    热门问题