java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL
Posted
技术标签:
【中文标题】java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL【英文标题】:How to get downloadURL of uploaded file in firebase storage on Java Spring Boot 【发布时间】:2022-01-13 11:35:47 【问题描述】:在 Java Spring boot 中,我可以使用 firebase-admin sdk 获取签名的 url。
Bucket bucket = StorageClient.getInstance().bucket();
Storage storage = bucket.getStorage();
BlobInfo blobInfo = BlobInfo.newBuilder(bucket.getName(), storeFileName)
.setContentType(fileType).build();
URL url = storage.signUrl(blobInfo, 5, TimeUnit.DAYS, Storage.SignUrlOption.withV4Signature());
String signedPath = url.toString();
但我需要在 Java Spring Boot 中获取 downloadUrl 而不是签名 url,如下面的颤振代码。
// Flutter Code
Reference ref = FirebaseStorage.instance.ref().child(storePath);
String url = (await ref.getDownloadURL()).toString();
我无法在 Java Spring 中添加 Firebase-Storage sdk,只能使用移动设备。
https://mvnrepository.com/artifact/com.google.firebase/firebase-storage/11.0.2
【问题讨论】:
【参考方案1】:用于 Cloud Storage 的 Admin SDK 是针对这些平台的 GCP 库的非常精简的包装器,它们确实不提供 getDownloadURL
方法。
与 GCP SDK 最接近的等价物是所谓的signed URL,它类似于下载 URL,但有一个过期时间戳。
如果这不能满足您的需求,您可以在文件上设置元数据属性以自行生成下载 URL,如以下答案所示:Get Download URL from file uploaded with Cloud Functions for Firebase。
【讨论】:
以上是关于java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL的主要内容,如果未能解决你的问题,请参考以下文章
使用 GraphQL Java 工具时 Spring Boot 应用程序无法启动
如何在 IDEA Intellij 上使用 Spring-boot 进行自动重新加载
spring-boot实战05:Spring Boo多环境配置及配置属性注入到对象
spring boo的简单搭建(eclipse+springboot + redis + mysql + thymeleaf)