首页 > 解决方案 > Google Cloud BlobListOption 仅迭代 currentDir 下一级

问题描述

我正在测试一些云存储功能,只是看到迭代方法仅适用于当前目录下的级别?

Page<Blob> blobs = STORAGE_INSTANCE.list(bucket, Storage.BlobListOption.currentDirectory(),
                Storage.BlobListOption.prefix(getBucketKey(GS_SCHEMA, prefix).concat(URI_DELIMITER)));

例如,假设.prefix()接收的是,/dir/并且此前缀包含两个嵌套级别,例如/dir/content//dir/content/mycontent.txt

如果使用前面提到的 执行该调用/dir/,则仅/dir/content/列出,但没有更多前缀。

因此,每当我想遍历下面的所有前缀/dir/时,无论我必须重申什么,/dir/content/以便我可以看到dir/content/mycontent.txt列出的内容。

有没有简单的方法来解决这个问题,还是我没有正确使用 API?

标签: google-cloud-platformgoogle-cloud-storage

解决方案


从方法中删除Storage.BlobListOption.currentDirectory()参数list()。以下代码片段成功地为我显示了包含特定前缀的所有 Blob:

Page<Blob> blobs = storage.list(bucketName, BlobListOption.prefix(prefix));
for (Blob blob : blobs.iterateAll()) {
    System.out.println(blob);
}

推荐阅读