将文件上传到具有Firebase功能的Firebase存储中后,我想获取文件的下载URL。
我有这个 :
... return bucket .upload(fromFilePath, {destination: toFilePath}) .then((err, file) => { // Get the download url of file });
目标文件有很多参数。甚至有一个叫mediaLink。但是,如果尝试访问此链接,则会出现此错误:
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使用服务帐户凭据进行初始化,因为应用程序默认凭据不足。
@google- cloud/storage
更新 :现在可以通过Firebase Admin SDK访问Cloud Storage SDK,该软件充当 @ google- cloud / storage 的包装。唯一的方法是: