Escribí una aplicación que descarga archivos zip grandes y los extrae usando request y unzipper . También logré mostrar el progreso de la descarga, pero el requisito es que debe poder reanudar la descarga después de una interrupción (internet se cae o la aplicación se cierra, *por ejemplo, cómo Steam descarga juegos) y no puedo resolverlo, mi el código es algo así
const getInstallerFile = (installerfileURL, installerfilename, Possition, Directory) => { // Variable to save downloading progress var received_bytes = 0; var total_bytes = 0; percentage = 0; var outStream = fs.createWriteStream(installerfilename); request .get(installerfileURL) .on('error', function (err) { console.log("Download has stopped", err); }) .on('response', function (data) { total_bytes = parseInt(data.headers['content-length']); console.log("download has started") }) .on('data', function (chunk) { //gets percentage after every chunk received_bytes += chunk.length; showDownloadingProgress(received_bytes, total_bytes, Possition); }) .pipe(outStream) outStream.on('finish', function () { console.log("download has completed") //...codeblock for storing local data fs.createReadStream(installerfilename) .pipe(unzipper.Extract({ path: Directory })) .on('finish', function () { console.log("unzipper finished extracting") //deleting the zip after downloading fs.rmSync(installerfilename, { recursive: true, force: true }); }); }) };¿Es posible reanudar la descarga usando una solicitud o incluso un nodo en general?