Я использую поток для загрузки файла с 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 секунд между последним приемом данных и окончанием чтения ..)