从Google云存储获取较短的文件URL(使用Firebase云功能)

从Google云存储获取较短的文件URL(使用Firebase云功能),firebase,google-cloud-storage,firebase-storage,google-cloud-functions,Firebase,Google Cloud Storage,Firebase Storage,Google Cloud Functions,我有以下Firebase Cloud函数来获取存储在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; c

我有以下Firebase Cloud函数来获取存储在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 admin
存储客户端,但距离它还有一段距离。目前,如果您需要在函数中创建下载URL,那么签名URL是一种方法


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

我无法找到使用任何Firebase模块检索文件下载URL的方法。我真的不需要一个签名的URL,只需要一个云函数内部的URL。对不起,让我自己更正一下。我需要一个签名的URL。Firebase下载URL有一个令牌属性(大约36个字符),而Google云存储有一个签名(200多个字符)。我正在寻找一个较小的下载网址size@SalilThakur不幸的是,我们还不支持通过标准GCS客户端下载Firebase URL。正如前面提到的,我们正在努力解决这个问题,但是现在你必须使用长的,或者存储一个
gs://
URI,让客户端获得一个实际的下载URL。另一个选择是研究一个链接缩短器(如bit.ly),以扩展到完整签名的URL!将在将来的更新中监视此功能。