Google cloud platform Google Cloud BloblyStoption只在currentDir下迭代一个级别

Google cloud platform Google Cloud BloblyStoption只在currentDir下迭代一个级别,google-cloud-platform,google-cloud-storage,Google Cloud Platform,Google Cloud Storage,我正在测试一些云存储功能,刚刚看到迭代方法只适用于当前目录下的级别 Page<Blob> blobs = STORAGE_INSTANCE.list(bucket, Storage.BlobListOption.currentDirectory(), Storage.BlobListOption.prefix(getBucketKey(GS_SCHEMA, prefix).concat(URI_DELIMITER))); Page blobs=STO

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

Page<Blob> blobs = STORAGE_INSTANCE.list(bucket, Storage.BlobListOption.currentDirectory(),
                Storage.BlobListOption.prefix(getBucketKey(GS_SCHEMA, prefix).concat(URI_DELIMITER)));
Page blobs=STORAGE\u INSTANCE.list(bucket,STORAGE.BlobListOption.currentDirectory(),
前缀(getBucketKey(GS_模式,前缀).concat(URI_分隔符));
例如,
.prefix()
接收的是
/dir/
,该前缀包含两个嵌套级别,如
/dir/content/
/dir/content/mycontent.txt

如果使用前面提到的
/dir/
执行该调用,则只列出
/dir/content/
,而不列出更多前缀

因此,每当我想迭代下面的所有前缀时,无论我必须重复什么,我都可以看到列出的
dir/content/mycontent.txt


是否有一种简单的方法可以解决此问题,或者我没有正确使用API?

列表()
方法中删除
存储.BlobListOption.currentDirectory()
参数。以下代码段管理显示了包含特定前缀的所有Blob:

Page<Blob> blobs = storage.list(bucketName, BlobListOption.prefix(prefix));
for (Blob blob : blobs.iterateAll()) {
    System.out.println(blob);
}
Page blobs=storage.list(bucketName,BlobListOption.prefix(prefix));
for(Blob Blob:blobs.iterateAll()){
系统输出打印项次(blob);
}

Hi@czr\u RR,我不确定您的用例。您正在尝试将结果筛选为名称以前缀
/dir/
开头的Blob吗?或者,您是在试图通过桶中的对象列表进行删除?期待您的回复。@sllopis非常感谢您的快速回复!我正试图将结果过滤为名称以
/dir/
开头的blob,确切地说。给定前缀下的任何blob,无论like
/dir/one/two/three/four/this\u之后有多少个级别,都应该列出。txt
,这很有意义!我遇到了这个问题(我自己还没有正式测试过),并认为它可能对您有用。你能看一下吗?请注意,它们正在迭代一系列blob
blob.iterateAll(),然后对每个blob执行
操作。随时通知我。