java—高效地从google云存储中删除多个blob

pzfprimi  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(266)

如果bucket中包含大量的项目,则逐个删除容器中的多个blob的速度非常慢。

public static void rmAll(Storage storage, String bucket) {
    Page<Blob> blobs = storage.list(bucket, Storage.BlobListOption.currentDirectory());
    for(Blob blob : blobs.iterateAll()) {
        blob.delete();
    }
}
p5cysglq

p5cysglq1#

我们可以简单地利用com.google.cloud.storage.storagebatch高效地删除一个bucket中的多个blob。

public static rmAll(Storage storage, String bucket) {
    StorageBatch batch = storage.batch();
    Page<Blob> blobs = storage.list(bucket, Storage.BlobListOption.currentDirectory());
    for(Blob blob : blobs.iterateAll()) {
        batch.delete(blob.getBlobId());
    }
    batch.submit();
}

相关问题