Articles of zlib

使用C#代码片段压缩的nodejs解压缩string

我使用C#工具收集一些大型的日志信息。 因此,我search了一种方法来压缩这个巨大的string,我发现这个片段做的伎俩: public static string CompressString(string text) { byte[] buffer = Encoding.UTF8.GetBytes(text); var memoryStream = new MemoryStream(); using (var gZipStream = new GZipStream(memoryStream, CompressionMode.Compress, true)) { gZipStream.Write(buffer, 0, buffer.Length); } memoryStream.Position = 0; var compressedData = new byte[memoryStream.Length]; memoryStream.Read(compressedData, 0, compressedData.Length); var gZipBuffer = new byte[compressedData.Length + 4]; Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length); Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, […]

为什么zlib.deflate(buf,callback)是asynchronous的?

当接受input缓冲区,并知道压缩是一个CPU绑定的任务,是否需要提供callback? 是否只是像callback(err, result)一样遵循惯例? Doc: http : //nodejs.org/api/zlib.html#zlib_zlib_deflate_buf_callback

在nodejs中解压缩数据

我正在尝试使用下面的代码来解压缩base64解码的缓冲区对象,但callback函数没有得到执行。 有人能告诉我我在这里失踪吗? function (event, context) { event.Records.forEach(function (record) { // Kinesis data is base64 encoded so decode here var payload = new Buffer(record.kinesis.data, 'base64'); zlib.gunzip(payload, function (err, data) { console.log("new data2"); if (!err) { console.log("new data3"); console.log(data); } else { console.log("new data4"); console.log(err, err.stack); } }); }); context.done(); };

我们如何区分deflateRawstream的deflatestream?

一些HTTP服务器发送deflate原始主体(没有zlib头)而不是实际的deflate主体。 请参阅以下讨论: 为什么真实世界的服务器更喜欢gzip而不是deflate编码? 是否有可能检测到它们并在Node.js中正确处理膨胀? 我的意思是除了尝试createInflate他们并捕获错误,然后再次尝试createInflateRaw 。

将两个CRC32值组合成一个在nodejs中

我想将两个预先计算好的crc32合并成一个新的: nodejs中的示例代码: // i'm using crc32 lib: https://github.com/brianloveswords/buffer-crc32/blob/master/index.js var crc32 = require('buffer-crc32'); var foo = new Buffer('foo'); var bar = new Buffer('bar'); var fooCrc32 = crc32(foo); // <Buffer 8c 73 65 21> var barCrc32 = crc32(bar); // <Buffer 76 ff 8c aa> // how to combine crc32 of foo and crc32 of bar to get […]

使用内置模块压缩文件夹

编辑 – >有人可以build议编辑我的答案,例如我不知道如果exec更好或spawn ? 是否有可能使用zlib和其他内置模块压缩目录/文件夹的内容? 我正在寻找一种方法来做到这一点,而无需外部依赖。 另一个select是在mac,windows等上运行本地进程,用于zip,tar等,我确定在任一操作系统上都有命令行实用程序 这不是一个答案,但它与我正在寻找什么有关,它产生了一个本地进程压缩。 我正在看的另一个链接 。 unix命令为zip | exec和产卵 我在terminal上试过的命令, / usr / bin / zip test.zip / resources / html / article du -hs test.zip 码 var zip = function(path) { const spawn = require('child_process').spawn; const exec = require('child_process').exec; exec("which zip", function (error, stdout, stderr) { if (error) { console.log(error); […]

Node.js:使用zlib压缩时定义flush方法

如何在使用Node.js的内置zlib模块压缩缓冲区时定义flush方法? 具体来说,我需要Z_SYNC_FLUSH。 在设置这个标志的选项中似乎没有一个地方。 http://nodejs.org/api/zlib.html

获取在zlibstream中读取的字节数

我正在使用zlib.Inflate来膨胀一大块数据。 我现在的问题是,我所知道的是有多less个未压缩的数据字节,但没有多less压缩的数据stream。 我目前只是写入整个input缓冲区到inflater,然后从它读取未压缩的字节数量。 这给了我正确的输出数据,但我必须知道有多less字节被用来继续parsing剩余的数据。 所以现在我做了以下testing: var inflater = zlib.createInflate(); inflater.write(strm.buffer.slice(strm.position)); inflater.on("readable", (function(inflater, len) { return function() { console.log(inflater); var decompData = inflater.read(len); console.log(inflater); var output = fs.createWriteStream("output.bin"); output.write(decompData); } })(inflater, len)); 我在读取之前和之后检查了充电器的所有成员,但是没有任何变化,除了读缓冲器(具有解压缩的数据)之外的每个值都是相同的。 有没有一种方法可以确定从压缩缓冲区读取了多less个字节? 先谢谢了,Cromon

在节点zlib中设置压缩级别

如何强制zlib使用压缩级别9. https://nodejs.org/dist/latest/docs/api/zlib.html 我需要设置这个自浏览器端解压缩文件的base64编码的string在级别9压缩。http://jsxgraph.uni-bayreuth.de/wp/jsxcompressor.html

错误:运行post时不正确的标题检查

我需要从rest电话(用于模拟我使用邮递员与二进制选项的邮件,并添加一个文件夹和HTML文件的一个小zip文件),在模拟过程中我想要获取数据与快递和提取zip并放在C盘下的一些文件夹。 目前,当我运行下面的程序(这是我试过的所有代码),但即时通讯错误 events.js:85扔呃; //未处理的错误事件^错误:在Zlib._handle.onerror(zlib.js:366:17) var express = require('express'), fs = require('fs'), zlib = require('zlib'), app = express(); app.post('/', function (req, res) { var writeStream = fs.createWriteStream('C://myFolder', {flags: 'w'}); req.pipe(zlib.createInflate()).pipe(writeStream); }); var server = app.listen(3000, function () { console.log("Running on port" + 3000) } ) 在邮差头我已经添加了以下内容 content-Type —-> application/zip 我应该如何克服这个问题,并保存压缩? 还有其他推荐(zlib)库来获取提取和保存压缩?