已完成百分比的流

Dav*_*don 2 node.js

我需要使用requestsuperagent之类的东西将 base64 格式的文件流式传输到 http 端点。确定文件已上传百分比的最佳方法是什么?

我假设我可以使用类似以下内容创建读取流:

fs.createReadStream('/tmp/cats.jpg', {encoding: 'base64'})
Run Code Online (Sandbox Code Playgroud)

任何使用上述库之一的示例将不胜感激。

Jak*_*ake 6

我认为你可以使用Progress-stream

这是包中的示例:

var progress = require('progress-stream');
var fs = require('fs');
 
var stat = fs.statSync(filename);
var str = progress({
    length: stat.size,
    time: 100 /* ms */
});
 
str.on('progress', function(progress) {
    console.log(progress);
 
    /*
    {
        percentage: 9.05,
        transferred: 949624,
        length: 10485760,
        remaining: 9536136,
        eta: 42,
        runtime: 3,
        delta: 295396,
        speed: 949624
    }
    */
});
 
fs.createReadStream(filename)
    .pipe(str)
    .pipe(fs.createWriteStream(output));
Run Code Online (Sandbox Code Playgroud)