Probé este script a continuación usando Node8.x.
Funcionó pero el tamaño del archivo descargado era imperfecto.
Lo intenté durante algún tiempo y cada tamaño de archivo descargado no era el mismo.
Usando Node9+ pude descargar el archivo con éxito.
¿Alguien podría explicar cuál fue la causa?
(async () => { const path = require('path') await downloadPromise( 'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz', path.join(__dirname, './', 't10k-labels-idx1-ubyte.gz')) })() function downloadPromise (url, savepath) { return new Promise((resolve, reject) => { const http = require('http') const fs = require('fs') const outfile = fs.createWriteStream(savepath) http.get(url, (res) => { res.pipe(outfile) res.on('end', () => { outfile.close() resolve() }) }) .on('error', (err) => reject(err)) }) }