在这段代码中,我从 url 流式传输文件并将其保存到文件中。有没有一种方法也可以通过管道来计算管道传输的字节数? (这会告诉我文件大小。)
request.stream(url)
.pipe(outputFile)
是否有一些库可以通过管道下载来完成此操作,或者我自己可以使用简单的方法来完成此操作?
最佳答案
你可以用 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
包的情况下做到这一点。
更新 #1(纯 NodeJS 解决方案)
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);
});
});
}
关于javascript - NodeJS 获取流式文件下载的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43547738/