spring-boot - 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*
假设我有一个休息控制器来提供文件名,我如何从云存储中获取文件?
解决方案
我用 bean 解决了这个问题
StorageOptions.newBuilder().setProjectId(projectId).build().getService();
一个函数
私人页面文件夹(字符串目录前缀){
Page<Blob> blobs =
storage().list(
bucketName,
Storage.BlobListOption.prefix(directoryPrefix));
return blobs;
}
用法:directotyPrefix 不只是我的文件夹,也是粘贴文件名
myfolder/ + 文件名和ext
推荐阅读
- c# - .NET Core - 如何使用命名曲线验证 ECDSA 签名
- python - 将额外金额添加到条带结帐
- html - 如何在 React html 解析器中使用事件
- python - 蝗虫中每个线程的不同数据集/蝗虫中的线程控制
- git - VS Code 发布到 GitHub,但存储库为空
- javascript - Javascript 静态方法链接
- c# - 为什么 svchost.exe 会终止我的进程
- python - Pandas Row 用 NaN 表示
- ssh - 在通过 ssh 连接的远程服务器上安装 pip 库
- node.js - Dockerized NodeJS 在 npm run 上选择一个脚本