Node.js Nodejs下载图像

Node.js Nodejs下载图像,node.js,Node.js,我正在尝试使用请求从服务器下载图像。 我设法下载了一些东西,但我得到的数据比图片还多 function _download(uri, save_as, destination) { let options = { uri: uri, timeout: 100000, followAllRedirects: true }; return new Promise(( _resolve,_reject) => {

我正在尝试使用请求从服务器下载图像。 我设法下载了一些东西,但我得到的数据比图片还多

function _download(uri, save_as, destination) {
    let options = {
        uri: uri,
        timeout: 100000,
        followAllRedirects: true
    };
    return new Promise(( _resolve,_reject) => {
        let ext, filename, bar, total, downloaded, req;
        req = request(options).on('response', (resp) => {
            if (resp.statusCode === 200){
                ext = _getFileType(resp.headers['content-type']);
                filename = destination+'/'+save_as+ext;
                var stream = fs.createWriteStream(filename)
                resp.pipe(stream).on('error',function(err){
                    _reject(err);
                }).on('finish',function(){
                    _resolve(filename);
                });
            } else {
                _reject("unable to download image %s",uri);
            }
        }).on('error', function(err) {
            console.log(err)
            _reject(err);
        })
    });
}
我的原始url的形式是,我的服务器以301状态重定向到存储图像的s3存储桶。
不幸的是,由于图像的url,我必须等待响应头内容类型确定它是什么类型的图像,并使用它来传输图像。
一切都按预期进行。。。但是我得到的数据比存储在s3中的数据要多。

有人有什么建议吗

请参考下面的链接

var fs = require('fs'),
request = require('request');

var download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);

request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};

download('https://www.google.com/images/srpr/logo3w.png', 'google.png', function(){
console.log('done');
});


请参考下面的链接

var fs = require('fs'),
request = require('request');

var download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);

request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};

download('https://www.google.com/images/srpr/logo3w.png', 'google.png', function(){
console.log('done');
});