NodeJS Stream с FTP-сервера - задержка между событиями «data» и «end» - PullRequest
0 голосов
/ 12 апреля 2019

Я использую поток для загрузки файла с FTP-сервера.

Однако событие end генерируется через несколько секунд после последнего события data, а не только после.

И когда я пытаюсь читать из локального файла, все в порядке

Кто-нибудь знает почему?

const url = new URL('ftp://login:pass@domain/file.pdf');
const ftp = new PromiseFtp();
await ftp.connect({
  host: url.host,
  port: +url.port,
  user: url.username,
  password: url.password,
});

// start downloading
const readStream = await ftp.get(url.pathname);
readStream.resume();

// receive data
readStream.on('data', chunk => {
  console.log(new Date(), `Received ${chunk.length} bytes of data.`);
});

// end of download
readStream.on('end', () => {
  console.log(new Date(), 'end reading');
});

Консоль:

2019-04-12T10:31:49.433Z 'Received 24820 bytes of data.'
2019-04-12T10:31:49.436Z 'Received 2920 bytes of data.'
2019-04-12T10:31:49.439Z 'Received 10045 bytes of data.'
2019-04-12T10:32:19.473Z 'end reading'

(30 секунд между последним приемом данных и окончанием чтения ..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...