如何使用Java从gcp存储桶下载文件夹?

时间:2020-03-03 09:15:21

标签: java google-cloud-platform

当前,我正在使用此代码

Storage storage = StorageOptions.newBuilder()
                                .setCredentials(credentials)
                                .setProjectId(projectId)
                                .build()
                                .getService();
Blob blob = storage.get(BlobId.of(bucketName, objectName));
blob.downloadTo(FilePath);

从存储桶中下载特定文件,但是如果我必须下载包含多个文件的文件夹,则无法执行。

1 个答案:

答案 0 :(得分:1)

在Google Cloud Platform Storage中没有文件夹之类的东西。取而代之的是virtual representation of them,但实际上,您只有一堆文件,这些文件的名称以类似的名称分组在分层文件树中。

如果您有gs://bucket/folder1/folder2/objectAgs://bucket/folder1/folder2/objectB

这两个文件实际上都位于同一文件夹下,但实际上,您的存储桶中只有2个名称相似的对象

对于对象A,文件名是"bucket/folder1/folder2/objectA",对于文件b,文件名是"bucket/folder1/folder2/objectB"

当您的路由以“ /”字符(例如"bucket/folder1/folder2/"

结尾时,将解释一个文件夹

在这种情况下,您将需要使用object listing method遍历您感兴趣的对象,并分别调用下载每个对象。