Simplest way to download and unzip files in Node.js cross-platform?

前端 未结 11 1546
一个人的身影
一个人的身影 2020-11-30 23:44

Just looking for a simple solution to downloading and unzipping .zip or .tar.gz files in Node.js on any operating system.

Not sure if this

11条回答
  •  暖寄归人
    2020-11-30 23:59

    Another working example:

    var zlib = require('zlib');
    var tar = require('tar');
    var ftp = require('ftp');
    
    var files = [];
    
    var conn = new ftp();
    conn.on('connect', function(e) 
    {
        conn.auth(function(e) 
        {
            if (e)
            {
                throw e;
            }
            conn.get('/tz/tzdata-latest.tar.gz', function(e, stream) 
            {
                stream.on('success', function() 
                {
                    conn.end();
    
                    console.log("Processing files ...");
    
                    for (var name in files)
                    {
                        var file = files[name];
    
                        console.log("filename: " + name);
                        console.log(file);
                    }
                    console.log("OK")
                });
                stream.on('error', function(e) 
                {
                    console.log('ERROR during get(): ' + e);
                    conn.end();
                });
    
                console.log("Reading ...");
    
                stream
                .pipe(zlib.createGunzip())
                .pipe(tar.Parse())
                .on("entry", function (e) 
                {    
                    var filename = e.props["path"];
                    console.log("filename:" + filename);
                    if( files[filename] == null )
                    {
                        files[filename] = "";
                    }
                    e.on("data", function (c) 
                    {
                        files[filename] += c.toString();
                    })    
                });
            });
        });
    })
    .connect(21, "ftp.iana.org");
    

提交回复
热议问题