在NodeJS服务器端为Firebase存储保护外部链接

时间:2016-06-16 20:07:05

标签: node.js https firebase google-cloud-storage firebase-storage

我在生成存储在Firebase存储分区中的文件的外部链接时遇到问题。

我正在使用Google云端存储一段时间并使用this库(基于this答案)来生成常规存储分区的外部链接,但在Firebase上使用它 - 分配的桶似乎不起作用。

我无法生成任何安全的HTTPS链接,并且不断获得证书验证错误NET::ERR_CERT_COMMON_NAME_INVALID,表明我的连接不是私密的。如果我从HTTPS中删除“S”,则链接有效。

注意:使用相同的凭据和私钥为我的项目中的其他存储桶生成链接,效果很好。只有Firebase存储桶拒绝接受我的签名......

1 个答案:

答案 0 :(得分:4)

我建议使用官方GCloud client,然后您可以使用getSignedUrl()获取文件的下载网址,如下所示:

bucket.file(filename).getSignedUrl({
  action: 'read',
  expires: '03-17-2025'
}, function(err, url) {
  if (err) {
    console.error(err);
    return;
  }

  // The file is now available to read from this URL.
  request(url, function(err, resp) {
    // resp.statusCode = 200
  });
});

Generate Download URL After Successful Upload这似乎适用于Firebase和GCS存储桶。