当前位置: 首页 > 面试题库 >

从使用Cloud Functions for Firebase上传的文件中获取下载URL

纪翰
2023-03-14
问题内容

将文件上传到具有Firebase功能的Firebase存储中后,我想获取文件的下载URL。

我有这个 :

...

return bucket
    .upload(fromFilePath, {destination: toFilePath})
    .then((err, file) => {

        // Get the download url of file

    });

目标文件有很多参数。甚至有一个叫mediaLink。但是,如果尝试访问此链接,则会出现此错误:

匿名用户没有storage.objects.get对对象的访问权限…

有人可以告诉我如何获取公共下载网址吗?

谢谢


问题答案:

您需要通过@ google-cloud / storage
NPM模块使用getSignedURL生成签名URL


例:

const gcs = require('@google-cloud/storage')({keyFilename: 'service-account.json'});
// ...
const bucket = gcs.bucket(bucket);
const file = bucket.file(fileName);
return file.getSignedUrl({
  action: 'read',
  expires: '03-09-2491'
}).then(signedUrls => {
  // signedUrls[0] contains the file's public URL
});

您需要@google- cloud/storage使用服务帐户凭据进行初始化,因为应用程序默认凭据不足。

更新 :现在可以通过Firebase Admin SDK访问Cloud Storage
SDK,该软件充当 @ google-
cloud / storage
的包装。唯一的方法是:

  1. 通常通过第二个非默认实例,使用特殊服务帐户初始化SDK。
  2. 或者,在没有服务帐户的情况下,通过向默认的App Engine服务帐户授予“ signBlob”权限。


 类似资料:
  • 在Firebase存储中上传了一个具有Firebase功能的文件后,我想获得该文件的下载url。 我有这个: 对象文件有很多参数。甚至是一个名为。但是,如果尝试访问此链接,则会出现以下错误: 匿名用户没有Storage.Objects.获取对象访问... 有人能告诉我如何获得公共下载URL吗? 谢谢

  • 我使用firebase-admin和firebase-functions在Firebase存储中上传文件。 我在仓库里有这样的规则:

  • 我试图用PythonAnywhere和Flask编写一个非常简单的webapp,它允许用户上传文本文件,生成csv文件,然后让用户下载csv文件。不一定要花哨,只要管用就行了。我已经编写了从驱动器上的txt文件生成csv的程序。 现在,我的函数用以下命令打开驱动器上的文件:

  • 问题内容: 我正在创建一个程序,通过读取同一游戏/应用程序的.jad文件中指定的URL,该程序将从Web服务器下载.jar(java)文件。我正在使用Python 3.2.1 我设法从JAD文件中提取JAR文件的URL(每个JAD文件都包含指向JAR文件的URL),但是正如您所想象的,提取的值是type()字符串。 相关功能如下: 但是,我总是得到一个错误,指出上面函数中的类型必须是字节,而不是字

  • 本文向大家介绍Jsp+Servlet实现文件上传下载 文件上传(一),包括了Jsp+Servlet实现文件上传下载 文件上传(一)的使用技巧和注意事项,需要的朋友参考一下 文件上传和下载功能是Java Web必备技能,很实用。 本文使用的是Apache下的著名的文件上传组件 org.apache.commons.fileupload 实现 下面结合最近看到的一些资料以及自己的尝试,先写第一篇文件上

  • 用于图像文件: 以下是我完成的错误: java.net.socketException:sendto失败:在libcore.io.iobridge.MaybeThrowAfterSendto(Iobridge.java:586)在libcore.io.iobridge.sendto(Iobridge.java:555)在java.net.plainsockeTimpl.write(plainsoc