【发布时间】:2019-11-06 05:35:38
【问题描述】:
有没有解决方案如何从firebase存储中获取照片的链接,只有java,而不是android?
我有 -
FileInputStream serviceAccount = new
FileInputStream("./serviceAccountKey.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setStorageBucket("g-app-af0af.appspot.com")
.build();
FirebaseApp.initializeApp(options);
Bucket bucket = StorageClient.getInstance().
bucket("g-app-af0af.appspot.com");
我可以上传照片
InputStream testFile = new FileInputStream("./12.png");
String blobString = "test_folder/" + "12.png";
Blob blob = bucket.create(blobString, testFile, "image/png",
Bucket.BlobWriteOption.userProject("g-app-af0af"));
我可以得到链接,但它是暂时的,我需要永恒的!!!
String bucketName = "g-app-af0af.appspot.com";
String blobName = "test_folder/12.png";
String keyPath = "./serviceAccountKey.json";
URL signedUrl = blob.getStorage().signUrl(BlobInfo.newBuilder(bucketName,
blobName).build(),
14, TimeUnit.SECONDS,
Storage.SignUrlOption.signWith(ServiceAccountCredentials.fromStream(
new FileInputStream(keyPath))));
System.out.println(signedUrl);
可以删除下载就好了
Blob blob1 = bucket.getStorage().get(BlobId.of(bucketName, blobName));
blob1.downloadTo(Paths.get("./zz.png"));
bucket.getStorage().delete(bucketName, blobName,
Storage.BlobSourceOption.userProject("g-app-af0af"));
但我无法从存储中获取到照片的永久 url 链接,嗯,原则上,作为一个选项,指定 100,000 天 感谢您的帮助
这样我才能做到))
【问题讨论】:
-
这个问题似乎根本没有包括任何解决问题的尝试。请编辑问题以显示您尝试过的内容,并使用Minimal, Complete, and Verifiable example 显示您遇到的特定障碍。欲了解更多信息,请参阅How to Ask。
标签: java firebase firebase-storage