我正在从 s3 拉下对象。对象被压缩,我需要能够解压缩它们并将内容与一些字符串进行比较。我的问题是我似乎无法正确解压缩它们。这就是我所看到的情况:s3 zipped -> over the wire -> 对我来说是 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);
})