我从s3中删除对象。对象是压缩的,我需要能够解压缩它们并将内容与一些字符串进行比较。我的问题是我似乎无法正确解压缩它们。这就是我所看到的:s3压缩 - >在电线上 - >给我作为JS Buffer - > ???
我不确定接下来我能做些什么。我似乎已经尝试了所有的东西,比如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);
})
答案 0 :(得分:0)
您可以使用AWS SDK的createReadStream
method从S3中的对象创建可读流,然后通过zlib.Gunzip
transform stream管道:
bits 32
section .text
;grub bootloader header
align 4
dd 0x1BADB002 ;magic
dd 0x00 ;flags
dd - (0x1BADB002 + 0x00) ;checksum. m+f+c should be zero
global start
extern kernel_main
start:
mov esp, stack_space ;set stack pointer
call kernel_main
; We shouldn't get to here, but just in case do an infinite loop
endloop:
hlt ;halt the CPU
jmp endloop
section .bss
resb 8192 ;8KB for stack
stack_space: