Articles of zlib

逐行读取gzipstream

我有一个压缩的gzip文件,我想逐行阅读。 var fs = require('fs') var zlib = require('zlib') var gunzip = zlib.createGunzip() var inp = fs.createReadStream('test.gz') var n = 0 var lineProcessing = function (err, data) { if (!err) { n += 1 console.log ("line: " + n) console.log (data.toString()) } } inp .on('data', function (chunk) { zlib.gunzip (chunk, lineProcessing) }) .on('end', function () […]

如何使用Node.js zlib模块的选项?

我需要使用zlib在极端压缩级别压缩Node.js中的缓冲区。 输出的头应该是78 DA。 除非我错过了一些东西,否则Node.js文档并没有描述如何使用zlib.Deflate类。 它不接受任何参数。 http://nodejs.org/api/zlib.html#zlib_class_zlib_deflate

使用node + express解压缩POST正文

我有一个简单的节点应用程序,应该写客户端的指标。 客户端以json格式发送指标,并使用python的zlib模块进行压缩,我正在尝试在express bodyParse发生之前添加一个中间件来解压请求。 我的中间件只是默认情况下提供的中间件: app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(require('less-middleware')({ src: __dirname + '/public' })); app.use(express.static(path.join(__dirname, 'public'))); }); 我试图添加一个简单的获取数据的中间件,然后解压缩它: app.use(function(req, res, next) { var data = ''; req.addListener("data", function(chunk) { data += chunk; }); req.addListener("end", function() { zlib.inflate(data, function(err, […]

Node.js:指定要用zlib + tar解压缩的文件

安装过程是下载.tar.gz压缩文件,然后将文件解压到目标目录。 但是,并非所有文件都是必需的,我想指定哪些文件应该被提取。 天真的方法是删除提取后的不必要的文件,但我想要一个“干净”的方式,而不是过滤。 这可能吗? (相关的)代码到目前为止(为了便于阅读) var fs = require('fs'); var tar = require('tar'); var zlib = require('zlib'); var log = console.log; var tarball = 'path/to/downloaded/archive.tar.gz'; var dest = 'path/to/destination'; fs.createReadStream(tarball) .on("error", log) .pipe(zlib.Unzip()) .pipe(tar.Extract({ path: dest })) .on("end", log); 谢谢。

使用zlib压缩多个文件

下面的代码将压缩一个文件。 我如何压缩多个文件 var gzip = zlib.createGzip(); var fs = require('fs'); var inp = fs.createReadStream('input.txt'); var out = fs.createWriteStream('input.txt.gz'); inp.pipe(gzip).pipe(out);

如何解码/解压Node.js中memcached支持的Railscaching(Dalli gem)中的值

我有一个Rails应用程序通过Dalli gem( https://github.com/mperham/dalli )在memcached中caching数据。 我想从Node.js读取这个caching的内容。 我正在使用mc模块与Node.js中的memcached进行交互。 我遇到的问题是编码和压缩。 Dalli使用Zlib::Deflate.deflate(data) ( https://github.com/mperham/dalli/blob/master/lib/dalli/compressor.rb )。 当我尝试从Node.js充气时,我试图膨胀zlib模块时出现错误: { [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' } 这里是相关的Ruby / Rails代码: config.cache_store = :dalli_store, memcached_server, {compress: true} 和相关的Node.js代码: client = new Memcached.Client(MEMCACHED_HOSTNAME, Memcached.Adapter.raw); client.get(key, function (err, response) { var data = response[key]; zlib.inflate(data.buffer, function (err, buf) { console.log(err, buf); }); }); […]

什么是正确的方法来处理node.js转换stream中的背压?

介绍 这些是我编写node.js服务器端的第一次冒险。 到目前为止它一直很有趣,但是我很难理解实现与node.jsstream相关的东西的正确方法。 问题 为了testing和学习的目的,我正在处理内容为zlib压缩的大文件。 压缩的内容是二进制数据,每个数据包的长度是38个字节。 我试图创build一个结果文件,看起来几乎与原始文件相同,除了每个1024 38字节的数据包有一个未压缩的31字节头。 原始文件内容(解压缩) +———-+———-+———-+———-+ | packet 1 | packet 2 | …… | packet N | | 38 bytes | 38 bytes | …… | 38 bytes | +———-+———-+———-+———-+ 产生的文件内容 +———-+——————————–+———-+——————————–+ | header 1 | 1024 38 byte packets | header 2 | 1024 38 byte packets | | […]

如何使用request或http模块将gzip页面读入string

我发现js中的请求模块无法正确处理gzip或者扩充格式http响应。 例如: request({url:'some url'}, function (error, response, body) { //if the content-encoding is gzip, the body param here contains binaries other than readable string. And even worse after you convert the body to buffer, u even can not gunzip it. } 所以我想在官方文档中使用示例代码。 var request = http.get({ host: 'izs.me', path: '/', port: 80, headers: { 'accept-encoding': […]

Node.js – 压缩/解压缩文件夹

我正在深入node.js的Zlib。 我能够使用提供的示例( http://nodejs.org/api/zlib.html#zlib_examples )来压缩和解压缩文件,但是我无法find更多关于对文件夹执行相同操作的内容吗? 一种可能(但我认为是修补)是使用node-zip模块并逐个添加文件夹的所有文件。 但是当解压缩时我会遇到问题(在这种情况下,我将丢失文件夹)。 任何想法如何使用Node.js压缩(然后解压缩)整个文件夹(尊重子焊料层次结构)? 谢谢。

在Nodejs中使用zlib压缩和解压缩数据

有人可以请向我解释zlib库如何在Nodejs中工作? 我对Nodejs相当陌生,而且我还不确定如何使用缓冲区和stream。 我的简单场景是一个stringvariables,我想压缩或解压缩(压缩或膨胀,gzip或gunzip等)的string到另一个string。 即(我如何期待它的工作) var zlib = require('zlib'); var str = "this is a test string to be zipped"; var zip = zlib.Deflate(str); // zip = [object Object] var packed = zip.toString([encoding?]); // packed = "packedstringdata" var unzipped = zlib.Inflate(packed); // unzipped = [object Object] var newstr = unzipped.toString([again – encoding?]); // newstr = "this […]