首页 > 解决方案 > Google Cloud Storage - 如何访问存储桶内的静态资源等文件夹和文件 - Spring Boot

问题描述

我想将 Google Cloud Storage 用于所有静态资源 - 图片等

该示例正在注入 1 个文件,但我想访问许多文件 - 给定一个名称

@Value("gs://${gcs-resource-test-bucket}/hello.txt")
private Resource gcsFile;

我也对迭代不感兴趣-因为我在存储桶中有文件夹,并且不想每次都迭代所有 100 个文件左右

Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
Page<Blob> blobs = storage.list(bucketName);

for (Blob blob : blobs.iterateAll()) {
  System.out.println(blob.getName());
}

有没有办法访问像 gs://somestringfilename 这样的文件?

不知道如何使用此属性来访问文件

You can also serve static resources by reading them from a bucket.
 spring.web.resources.static-locations=gs://p*

假设我有一个休息控制器来提供文件名,我如何从云存储中获取文件?

标签: spring-bootgoogle-cloud-platformgoogle-cloud-storage

解决方案


我用 bean 解决了这个问题

StorageOptions.newBuilder().setProjectId(projectId).build().getService();

一个函数

私人页面文件夹(字符串目录前缀){

Page<Blob> blobs =
        storage().list(
            bucketName,
            Storage.BlobListOption.prefix(directoryPrefix));

return blobs;       

}

用法:directotyPrefix 不只是我的文件夹,也是粘贴文件名

myfolder/ + 文件名和ext


推荐阅读