如果我想使用请求跟踪服务器下载的进度,我可以这样做:
var fs = require('fs');
var request = require('request');
request('http://127.0.0.1:3000/cloud/foo/bar.mov')
.on('data', function(data) {
console.log('chunk size: ' + data.length)
});
但是如何跟踪上传到其他服务器的进度?
fs.createReadStream('/tmp/foo/bar.mov)
.pipe(request.put('http://...cloud'));
我环顾四周,有些模块可以通过创建一个中间流来管理这些代码(" progress-stream"),所以代码如下所示:
var stat = fs.statSync(filename);
var str = progress({
length: stat.size,
time: 100
});
str.on('progress', function(progress) {
console.log('chunk size: ' + progress.delta);
}
fs.createReadStream('/tmp/foo/bar.mov)
.pipe(str)
.pipe(request.put('http://../cloud/foo.mov'));
创建另一个流来跟踪已写入请求的进度似乎很麻烦。
有没有更好的方法来跟踪上传的进度?大多数文章都涉及将文件上传到节点,而不是从节点上传。