我正在尝试直接从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);
}
});
它对于许多文件(图像,视频,音乐,文档)都可以正常工作,但是在一个视频文件中出现问题,该视频文件显示已成功在存储桶中上传,但未完全上传(上传了损坏的文件)。 同样也没有任何问题。 如何确定我的所有文件都将完全上传。 可能有很多损坏的文件没有完全上传。
还有其他直接上传到存储桶的方法吗? 请同样提供帮助。
您是否尝试过遵循本文档? CreateWriteStream 。 那里有一个有关如何上传文件的示例。 此外,请看另一个问题,它与您的问题有点类似, 将文件从URL上传到存储 ,我认为这很有用。