下载Gzip&#d; d文件

时间:2014-03-12 21:53:05

标签: node.js

我尝试使用节点中的http模块下载文件。虽然文件似乎成功下载,但无法使用gzip打开生成的文件。我尝试通过其他方法下载文件,并且可行,并且我尝试使用多种方法打开生成的gzip文件,但所有这些都会产生相同的错误。

我确实试图使用请求模块,但在文件下载完成之前似乎无法访问返回的HTTP标头,这是我需要的,因为我想提供某种视觉指示器作为这个文件需要多长时间才能下载。

这是(大致)我到目前为止所获得的代码。

var http = require('http');
var fs = require('fs');

var progress = 0;

downloadFile = function() {
    http.get(FILE_URL, function(response) {
        var maxBytes = parseInt(response.headers['content-length'], 10);
        var dumpFile = fs.createWriteStream(FILENAME + '.dl');
        response.pipe(dumpFile);

        response
            .on('data', function(chunk) {
                progress += chunk.length;
                // progressbar-type code here
            })
            .on('end', function() {
                // pass
            })

        dumpFile.on('finish', function() {
            dumpFile.close();
            fs.rename(FILENAME + '.dl', FILENAME);
    });
}

所以我的问题:您如何建议我下载文件,请记住它是一个大文件,我需要某种可视指示器来下载进度?我应该放弃http吗?或者我做了一些非常愚蠢的事情?

谢谢!

0 个答案:

没有答案