Google Cloud Storage - 如何访问存储桶内的文件夹和文件,如静态资源 - Spring Boot
Google Cloud Storage - How to access folders and files like static resources inside bucket - Spring Boot
我想为所有静态资源使用 Google 云存储 - 图片等
示例是注入 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 controller 来提供文件名,我如何从云存储中获取文件?
根据给定的陈述,您正在尝试使用 Java 作为您的语言从 Google 云存储中读取或访问文件。
对于你的情况,这应该有效:
BlobId blobId = BlobId.of(bucketName, blobName);
Blob blob = storage.get(blobId);
String fileContent = new String(blob.getContent());
System.out.println(fileContent);
有关 Class Blob 的更多文档,您可以参考 here。
您也可以查看此 Cloud Storage Client Libraries 了解更多详情。
我用 bean 解决了这个问题
StorageOptions.newBuilder().setProjectId(projectId).build().getService();
一个函数
私人页面文件夹(字符串目录前缀){
Page<Blob> blobs =
storage().list(
bucketName,
Storage.BlobListOption.prefix(directoryPrefix));
return blobs;
}
用法:directotyPrefix不仅仅是我的文件夹,还要贴上文件名
myfolder/ + filenamewithext
我想为所有静态资源使用 Google 云存储 - 图片等
示例是注入 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 controller 来提供文件名,我如何从云存储中获取文件?
根据给定的陈述,您正在尝试使用 Java 作为您的语言从 Google 云存储中读取或访问文件。
对于你的情况,这应该有效:
BlobId blobId = BlobId.of(bucketName, blobName);
Blob blob = storage.get(blobId);
String fileContent = new String(blob.getContent());
System.out.println(fileContent);
有关 Class Blob 的更多文档,您可以参考 here。
您也可以查看此 Cloud Storage Client Libraries 了解更多详情。
我用 bean 解决了这个问题
StorageOptions.newBuilder().setProjectId(projectId).build().getService();
一个函数
私人页面文件夹(字符串目录前缀){
Page<Blob> blobs =
storage().list(
bucketName,
Storage.BlobListOption.prefix(directoryPrefix));
return blobs;
}
用法:directotyPrefix不仅仅是我的文件夹,还要贴上文件名
myfolder/ + filenamewithext