【问题标题】:Get shorter file URL from Google Cloud Storage (with Firebase Cloud Functions)从 Google Cloud Storage 获取更短的文件 URL(使用 Firebase Cloud Functions)
【发布时间】:2017-09-04 04:00:06
【问题描述】:

我有以下 Firebase Cloud Function 来获取存储在 Google Cloud Storage 中的文件的 URL。

const gcs = require('@google-cloud/storage')({keyFilename: 'service-account.json'});

exports.generateFileLink = functions.storage.object().onChange(event => {
  const object = event.data;
  const filePath = object.name;
  const bucket = gcs.bucket(object.bucket);
  const file = bucket.file(filePath);
  const action = 'read';
  const expires = '03-09-2491';
  return file.getSignedUrl({action, expires}).then(signedUrls => {
    console.log(signedUrls[0])
  });
})

这会返回正确的 URL,但它的长度超过 600 个字符。在 Firebase Web 控制台上看到的同一文件的 URL 长度少于 200 个字符。有什么方法可以使用 firebase-admin 或 firebase-functions 模块检索 URL 以获取更短的 URL?

【问题讨论】:

    标签: firebase google-cloud-storage firebase-storage google-cloud-functions


    【解决方案1】:

    简短的回答是,我们正在开发一个firebase-admin Storage 客户端,但距离我们还有一段距离。目前,如果您需要在函数中创建下载 URL,则可以使用签名 URL。

    为什么需要在函数中生成签名 URL 而不是使用 Firebase 提供的下载 URL?是不是不能通过函数中的客户端检索到URL,需要移动到别的地方?

    【讨论】:

    • 我找不到使用任何 Firebase 模块检索文件下载 URL 的任何方法。我真的不需要签名 URL,只需要云函数中的 download URL
    • 对不起,让我纠正一下。我确实想要一个签名的 URL。 Firebase 下载 URL 中有一个令牌属性(大约 36 个字符),而 Google Cloud Storage 有一个签名(200 多个字符)。我正在寻找一个较小的下载 URL
    • @SalilThakur 很遗憾,我们还不支持通过标准 GCS 客户端下载 Firebase 网址。如前所述,我们正在努力解决这个问题,但现在您必须使用长的或存储 gs:// URI 并让客户端获得实际的下载 URL。另一种选择是调查链接缩短器(如 bit.ly)以扩展为完整签名的 URL
    • 谢谢迈克!将在未来的更新中密切关注此功能。
    猜你喜欢
    • 2019-04-08
    • 2018-04-22
    • 2018-12-22
    • 2013-08-22
    • 2015-03-29
    • 2020-03-07
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多