0
我从s3拉下对象。对象被压缩,我需要能够解压缩它们,并将内容与一些字符串进行比较。我的问题是,我似乎无法正确解压缩它们。这是我看到发生的事情:s3压缩 - >通过电线 - >我的JS缓冲区 - > ???在JS中解压缩字符串
我不确定接下来可以做什么。我似乎尝试了所有的东西,比如pako和lzutf8来解压琴弦,但没有骰子。
这里是lzutf8尝试:
lzutf8.decompress(buffer,{outputEncoding: "String"}, (result, error) => {
if (err) console.log(err);
if (data) console.log(data);
});
这里是PAKO尝试:
pako.ungzip(buffer,{to: "string"}, (result, error) => {
if (error) console.log(err);
if (result) console.log(data);
})
PAKO抛出 “不正确头检查”,并lzutf8默默地什么都不做。
我没有与这些图书馆结婚,所以如果还有其他事情可以完成这项工作,我很乐意尝试任何事情。我猜测我的问题可能与编码类型有关?但不知道。
这里是我的代码的相关部分的样子:
let pako = require('pako');
let streamBuffers = require('stream-buffers');
let ws = fs.createWriteStream(process.cwd() + 'path-to-file');
let rs = new streamBuffers.ReadableStreamBuffer();
objects.forEach((obj) => {
console.log(obj);
rs.on("data", (data) => {
ws.write(pako.ungzip);
})
rs.push(obj);
})
它是压缩还是压缩?这是两个完全不同的东西。压缩了 – tadman
。我想我不知道区别。尽管我刚刚被告知我们正在将其更改为gzip ... – bwighthunter
[Zip](https://en.wikipedia.org/wiki/Zip_(file_format))是一种非常具体的文件格式,可对一个或多个文件和目录。 [gzip](https://en.wikipedia.org/wiki/Gzip)是一种压缩方法,通常用于任意数据流或单个文件。您需要知道您要处理的是哪种类型,格式完全不同。 – tadman