【问题标题】:Download file from link and check if download is complete nodejs从链接下载文件并检查下载是否完成nodejs
【发布时间】:2021-01-13 03:25:16
【问题描述】:
我尝试从链接下载文件
这是我的代码
const url ="https://lalalai.s3-us-west-2.amazonaws.com/media/split/a703a60c-54f3-48f4-91b5-43a60c-54f3-48f4-91b5-4b3bc71dfd2f/accompaniment";
const file = fs.createWriteStream("./uploads/exp.mp3");
https.get(url, async function (response) {
await response.pipe(file);
console.log("done");
});
问题是,服务器返回“完成”但下载的文件仍未完成。
有人能帮我吗?谢谢:D
【问题讨论】:
标签:
javascript
node.js
fs
【解决方案1】:
我认为您可以监听事件并应用回调来了解该特定事件会发生什么。下面是示例代码。
const url ="https://lalalai.s3-us-west-2.amazonaws.com/media/split/a703a60c-54f3-48f4-91b5-43a60c-54f3-48f4-91b5-4b3bc71dfd2f/accompaniment";
const file = fs.createWriteStream("./uploads/exp.mp3");
https.get(url, async function (response) {
response.pipe(file);
console.log("downloading started");
response.on("error", (err) => {
console.log("some error occurred while downloading");
throw err;
});
response.on("end", () => {
console.log("it worked, download completed");
});
});
有时正在下载的文件会出现在 response.body 中而不是 response 中,所以如果上述方法不起作用,请检查一下。