javascript - 上传成功后生成下载地址

标签 javascript firebase google-cloud-storage firebase-storage

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

enter image description here

正在使用的代码:

    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);    


  });

最佳答案

使用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
  });
});

关于javascript - 上传成功后生成下载地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824361/

相关文章:

google-cloud-storage - 将文件和文件夹从Google存储桶下载到本地文件夹

angular - 使用无效数据调用函数 DocumentReference.set()。不支持的字段值 : a custom Budget object

android - 在 android 中接收的 FCM 数据有效负载不是 json 格式

javascript - 使用用户 ID 将数据添加到 Firestore

java - 如何从 gcs 中获取文件列表?

google-cloud-platform - 在 Google Cloud Storage 上恢复存储桶

javascript - riot.js:监听另一个元素的事件

javascript - 忽略它是否已经褪色

javascript - 将多维 JSON 键值对转换为 Angular 菜单(无需 Angular 知识)

javascript - AngularJS ngRepeat 清除批量数据时显示缓慢