如何从 JAVA 中的谷歌存储云存储桶中获取所有 pdf 文件

时间:2021-02-21 06:41:55

标签: java google-cloud-platform google-cloud-functions google-cloud-storage

在存储桶文件夹中,我可以从谷歌存储中获取 pdf 文件。我如何从那里下载所有文件。 例如,对于单个文件。

public InputStream getBlobBytesArray() {
    String bucketName ="XYZ";
    String filename="abc.pdf";
    Blob blob = getStorageInstance().get(BlobId.of(bucketName, filename));
    return  new ByteArrayInputStream(getStorageInstance().readAllBytes(blob.getBlobId()));

}

在存储桶内,我创建了一个文件夹,其中存储了 5 个 pdf。 如何获取它们'

public MultipartFile getMultiFileFromCloud() {
        // TODO Auto-generated method stub
        String bucketName = "XYZ";
        Blob fileBlob = getStorageInstance().get(BlobId.of(bucketName, filepath));
        MultipartFile multipartFile = new CommonsMultipartFile( new ByteArrayInputStream(fileBlob.getContent(BlobSourceOption.generationMatch())));

        return null;
    }

我已经试过了,没有任何效果。提前致谢。

2 个答案:

答案 0 :(得分:1)

Google 存储提供了查找文件夹内所有对象的方法。

public InputStream getBlobBytesArray() {
    String bucketName ="XYZ";
Bucket bucket = storage.get(bucketName);

Page<Blob>blobs=bucket.list(Storage.BlobListOption.prefix("folderPath/1"));  
}

现在这对我来说很好。

答案 1 :(得分:0)

您只能通过文件全名的前缀(包括路径)来搜索文件。如果您要查找后缀或内容类型元数据,则需要获取所有文件并使用代码选择所需内容(例如名称中的 *.pdf 扩展名)。

那你就不能一个命令下载了,只能一个一个下载。