如何在 Java Spring 启动时获取 firebase 存储中上传文件的 downloadURL
How to get downloadURL of uploaded file in firebase storage on Java Spring Boot
在 Java Spring 引导中,我可以使用 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 代码一样。
// 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
适用于云存储的 Admin SDK 是针对这些平台的 GCP 库的非常薄的包装器,确实不提供 getDownloadURL
方法。
GCP SDK 拥有的最接近的等效项是所谓的 signed URL,它类似于下载 URL,但具有过期时间戳。
如果这不能满足您的需求,您可以在文件上设置元数据 属性 以自行生成下载 URL,如此答案所示:。
在 Java Spring 引导中,我可以使用 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 代码一样。
// 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
适用于云存储的 Admin SDK 是针对这些平台的 GCP 库的非常薄的包装器,确实不提供 getDownloadURL
方法。
GCP SDK 拥有的最接近的等效项是所谓的 signed URL,它类似于下载 URL,但具有过期时间戳。
如果这不能满足您的需求,您可以在文件上设置元数据 属性 以自行生成下载 URL,如此答案所示: