如何从java而不是android的firebase存储中获取照片的链接

是否有解决方案,如何仅从Firebase存储(而不是android)中获取照片的链接?

我有-

nlmsg_alloc_size()

我可以上传照片

    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);

但是我无法从存储中获得到照片的永久URL链接,嗯,原则上,作为一种选择,请指定100,000天 谢谢你的帮助

这样我就可以做到)

heiseseo 回答:如何从java而不是android的firebase存储中获取照片的链接

下载URL是一种特定于Firebase客户端SDK的机制,在服务器端SDK中不可用。

服务器端SDK上最接近的等效项是signed URL,您可以通过调用Storage.signUrl来获得Java。来自here的示例:

Storage storage = StorageOptions.getDefaultInstance().getService();
String bucketName = "[BUCKET_NAME]";
String blobName = "[BLOB_NAME]";
String keyPath = "[PATH_TO_KEY]";
URL signedUrl = storage.signUrl(BlobInfo.newBuilder(bucketName,blobName).build(),14,TimeUnit.DAYS,SignUrlOption.signWith(ServiceAccountCredentials.fromStream(
        new FileInputStream(keyPath))));

您可以简化一点,因为Firebase Admin SDK将为您预先创建Storage实例。

也可以看看针对Node.js的类似答案:Get Download URL from file uploaded with Cloud Functions for Firebase

本文链接:https://www.f2er.com/3154766.html

大家都在问