您可以使用axios模块,您可以传递URL,它将处理一个协议http或https。请参见下面的代码 'use strict'
const Fs = require('fs')
const Path = require('path')
const Axios = require('axios')
const ProgressBar = require('progress')
async function downloadImage () {
const url = 'http://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_5mb.mp4'
console.log('Connecting …')
const { data, headers } = await Axios({
url,
method: 'GET',
responseType: 'stream'
})
const totalLength = headers['content-length']
console.log('Starting download')
const progressBar = new ProgressBar('-> downloading [:bar] :percent :etas', {
width: 40,
complete: '=',
incomplete: ' ',
renderThrottle: 1,
total: parseInt(totalLength)
})
const writer = Fs.createWriteStream(
Path.resolve(__dirname, '', 'test.mp4')
)
data.on('data', (chunk) => {
progressBar.tick(chunk.length)
console.log("% complted",(progressBar.curr/totalLength)*100)
})
data.pipe(writer)
}
downloadImage() 来源:https://futurestud.io/tutorials/axios-download-progress-in-node-js 演示:https://repl.it/repls/FluffyAmpleArrays
|