无法通过管道直接从URL将文件完全上传到Google Cloud Storage存储桶中

问题描述 投票:0回答:1

我正在尝试直接从url上传文件到Google Firebase存储上。 我已经回顾了许多方法,最后使用了以下解决方案:

const bucket = storage.bucket(bucketName);
const file = bucket.file(destPath + fileName);
return new Promise((resolve, reject) => {
  try {
    https.get(url, data => {
      if (data && data.statusCode === 200) {
        data.pipe(file.createWriteStream());
        data.on("error", error => {
          reject(error);
        });
        data.on("end", () => {
          resolve(fileName);
        });
      } else {
        const err = new Error(data.statusMessage);
        err.code = data.statusCode;
        data.removeAllListeners();
        reject(err);
      }
      data.on("close", () => {
        console.log("connection closed");
      });
    });
  } catch (err) {
    reject(err);
  }
});

它对于许多文件(图像,视频,音乐,文档)都可以正常工作,但是在一个视频文件中出现问题,该视频文件显示已成功在存储桶中上传,但未完全上传(上传了损坏的文件)。 同样也没有任何问题。 如何确定我的所有文件都将完全上传。 可能有很多损坏的文件没有完全上传。

还有其他直接上传到存储桶的方法吗? 请同样提供帮助。

node.js pipe google-cloud-storage firebase-storage
1个回答
0
投票

您是否尝试过遵循本文档? CreateWriteStream 。 那里有一个有关如何上传文件的示例。 此外,请看另一个问题,它与您的问题有点类似, 将文件从URL上传到存储 ,我认为这很有用。

© www.soinside.com 2019 - 2024. All rights reserved.