Загрузите файл по ссылке и проверьте, завершена ли загрузка nodejs

#javascript #node.js #fs

#javascript #node.js #fs

Вопрос:

Я пытаюсь загрузить файл по ссылке

Это мой код

   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

Ответ №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");
    });
    
 });
 

Иногда загружаемый файл приходит в ответ.тело вместо ответа, поэтому проверьте это также, если выше не работает.