在此代码中,我从网址流式传输文件并将其保存到文件中。有没有办法管理它通过计算管道传输的字节数? (这会告诉我文件大小。)
request.stream(url)
.pipe(outputFile)
是否有一些库会通过管道下载来实现这一点,或者我自己做一个简单的方法?
答案 0 :(得分:3)
你可以使用request
库这样做:
const request = require('request');
const fs = require('fs');
var downloaded = 0;
request.get(url)
.on('data', function(chunk){
downloaded += chunk.length;
console.log('downloaded', downloaded);
})
.pipe(fs.createWriteStream(fileName));
此外,您可以查看this link,了解如何在没有request
包的情况下执行此操作。
var http = require('http');
var fs = require('fs');
var download = function(url, dest, cb) {
var file = fs.createWriteStream(dest);
var downloaded = 0;
var request = http.get(url, function(response) {
response.pipe(file);
response.on('data', function(chunk){
downloaded += chunk.length;
console.log(downloaded);
})
file.on('finish', function() {
file.close(cb);
});
});
}