Узел восстановления потока загрузки - PullRequest
0 голосов
/ 29 сентября 2019

Я делаю небольшой скрипт для загрузки файлов с узла.Соединение, которое я имею с сайтом, очень неустойчиво и обычно падает несколько раз.Моя идея состоит в том, чтобы иметь возможность восстановить загрузку, если соединение обрывается в том же месте, где оно было ранее.Я использую axios и progress-stream:

const download = (link, size, localPath, transferred = 0) => {

  return new Promise((resolve, reject) => {

    axios({
      url: link,
      method: 'GET',
      responseType: 'stream'
    })
    .then(response => {

      const writer = fs.createWriteStream(localPath);

      const str = progress({
        time: 100,
        length: size,
        transferred: transferred
      });

      str.on('progress', function(progress) {
        console.log(progress);
      });

      response.data
        .pipe(str)
        .pipe(writer);

      writer.on('finish', resolve);
      writer.on('error', reject);

    })
    .catch(reject);

  });
};

Когда соединение обрывается и я перезапускаю скрипт, я передаю параметр 'переданный' размер, который в данный момент не завершен, но загрузка начинается с 0. Есть ли способ начать загрузку с того места, где она была прервана?

...