javascript - NodeJS 获取流式文件下载的字节数

标签 javascript node.js download stream

在这段代码中,我从 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/

相关文章:

javascript - mongodb中的递增索引

angularjs - 在 Heroku 上部署 MEAN 应用程序时出现应用程序错误

javascript - AngularJs 应用程序中的下载损坏

javascript - ResponsiveVoice.js - 绕过 iOS TTS 需要直接用户交互

node.js - 如何找到任何版本 Node 的最新 Typescript 目标支持?

javascript - 显示或隐藏元素会影响下方 div 的位置

html - 使用 Google chrome 下载/打开 .csv 文件,它将 .csv 文件的扩展名更改为 .xls

linux - 在Linux中定期从FTP下载文件

javascript - ps au | 的结果grep ssh 在 Node.js 中的不同(使用 spawn/pipe)与 shell

javascript - 如何使用自定义顺序对对象数组进行排序?