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
,这很有意义!我遇到了这个问题(我自己还没有正式测试过),并认为它可能对您有用。你能看一下吗?请注意,它们正在迭代一系列blobblob.iterateAll()代码>,然后对每个blob执行操作。随时通知我。