2

我已经通过 JS 通过 Google Cloud Storage 成功将文件上传到 Firebase 的存储!我注意到的是,与直接上传的文件不同,通过谷歌云上传的文件只有一个存储位置 URL,这不是一个完整的 URL,这意味着它无法读取!我想知道是否有办法在上传时为 Firebase 实际存储的“下载 URL”部分生成完整的 URL。

在此处输入图像描述

正在使用的代码:

    var filename = image.substring(image.lastIndexOf("/") + 1).split("?")[0];
    var gcs = gcloud.storage();
     var bucket = gcs.bucket('bucket-name-here.appspot.com');

     request(image).pipe(bucket.file('photos/' + filename).createWriteStream(
     {metadata: {contentType: 'image/jpeg'}}))
      .on('error', function(err) {})
    .on('finish', function() {



     console.log(imagealt);    


  });
4

2 回答 2

4

使用 GCloud 客户端时,您要使用getSignedUrl()下载文件,如下所示:

bucket.file('photos/' + 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
  });
});
于 2016-06-16T04:50:30.493 回答
2

您可以:

a) 通过 firebase 控制台创建下载 url

创建新的下载链接

b) 如果您尝试以编程方式从 firebase 客户端获取下载网址,则会为您即时创建一个。

于 2016-06-15T01:25:23.580 回答