当前位置: 首页 > 知识库问答 >
问题:

从firebase-admin上传的文件中获取公共URL

白淇
2023-03-14

我使用firebase-admin和firebase-functions在Firebase存储中上传文件。

我在仓库里有这样的规则:

service firebase.storage {
  match /b/{bucket}/o {
    match /images {
      allow read;
      allow write: if false;
    }
  }
}
const config = functions.config().firebase;
const firebase = admin.initializeApp(config);
const bucketRef = firebase.storage();

server.post('/upload', async (req, res) => {

  // UPLOAD FILE

  await stream.on('finish', async () => {
        const fileUrl = bucketRef
          .child(`images/${fileName}`)
          .getDownloadUrl()
          .getResult();
        return res.status(200).send(fileUrl);
      });
});

共有1个答案

楚皓君
2023-03-14
javascript prettyprint-override">// Create a new blob in the bucket and upload the file data.
const blob = bucket.file(req.file.originalname);
const blobStream = blob.createWriteStream();

blobStream.on('finish', () => {
    // The public URL can be used to directly access the file via HTTP.
    const publicUrl = format(`https://storage.googleapis.com/${bucket.name}/${blob.name}`);
    res.status(200).send(publicUrl);
});

示例:

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
});
 类似资料:
  • 问题内容: 将文件上传到具有Firebase功能的Firebase存储中后,我想获取文件的下载URL。 我有这个 : 目标文件有很多参数。甚至有一个叫。但是,如果尝试访问此链接,则会出现此错误: 匿名用户没有storage.objects.get对对象的访问权限… 有人可以告诉我如何获取公共下载网址吗? 谢谢 问题答案: 您需要通过@ google-cloud / storage NPM模块使用g

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

  • 我试图得到一个1分钟的视频上传到firebase桶存储使用管理SDK的进度。我见过很多关于使用firebase.storage().ref.child....但我无法做到这一点与管理sdk,因为他们没有相同的功能。这是我的文件上传: 这个方法现在还可以,但唯一的问题是用户不能看到他们的1或2分钟视频上传的位置。目前,它只是一个活动指示器,用户只是坐着等待,没有任何通知。如果有帮助的话,我会在前端使

  • 有没有一种方法可以在Google Drive中使用API获得标记为公共查看的文件,而不需要验证? 我知道“downloadURL”属性,但它是一个临时URL,没有引用它的持续时间。我想直接使用API来获取文件,我想我在某处读到有人暗指有可能调用未通过身份验证的API来检索公共文件。

  • 这是我的Laravel 5.2文件夹结构 在Laravel的根文件夹laravel下,我添加了一个带有以下代码的文件: 现在,当我在浏览器中打开project时,会出现以下错误: 对不起,找不到您要找的页面。"在RouteCollection.php行161中的NotFoundHttp异常:" 我正在使用XAMPP。为什么我会犯这个错误?如何使用此方法从URL中删除public?

  • 问题内容: 我怎样才能得到一个与事件 的公共 谷歌日历?我有,但是没有必要。我不想更改其事件,也无需登录。 我想从中获取一个与我的/ 数据库同步。 试过了 但出现登录错误: 问题答案: 您的日历必须 公开 共享 ! 如果您仅共享 忙/闲 状态,则此方法有效: 详细信息 -仅当日历完全公开共享时,此wotrks 或者只是 忙碌 参数 orderby , sortorder 和 futureevent