跟踪进度

时间:2014-12-10 15:19:37

标签: node.js upload stream

如果我想使用请求跟踪服务器下载的进度,我可以这样做:

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'));

创建另一个流来跟踪已写入请求的进度似乎很麻烦。

有没有更好的方法来跟踪上传的进度?大多数文章都涉及将文件上传到节点,而不是从节点上传

0 个答案:

没有答案