【发布时间】:2021-09-23 16:35:31
【问题描述】:
我想将 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*
假设我有一个 rest 控制器来提供文件名,我如何从云存储中获取文件?
【问题讨论】:
-
你的资源是公开的吗?
-
不公开。应用程序正在读取,因此假设它是服务帐户。问题不是权限,而是如何按名称访问文件
-
尝试 - 页面
blobs = storage().list( bucketName, Storage.BlobListOption.prefix(directoryPrefix));看起来不错,但现在需要阅读内容
标签: spring-boot google-cloud-platform google-cloud-storage