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