Эффективное удаление нескольких BLOB-объектов из Google Cloud Storage - PullRequest
0 голосов
/ 06 декабря 2018

Удаление нескольких 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();
    }
}

1 Ответ

0 голосов
/ 06 декабря 2018

Мы можем просто использовать com.google.cloud.storage.StorageBatch , чтобы эффективно удалять несколько больших двоичных объектов в корзине.

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();
}
...