CNode

nodejs 如何解压10G左右的压缩包?

问答
FFlywor发布于7 年前最后回复7 年前6 回复6292 浏览0 收藏

已知node虚拟机内存缓存区大小为1.5G左右,直接使用zlib解压会造成程序崩溃

有没有哪个库是边读边解压的?

或者,能不能将压缩包拆成若干个小的压缩包再分别解压后合并?

查看回复

回复 (6)

A
atian25#1·7 年前

你不是用 stream 的方式?

F
Flywor#2·7 年前
引用 atian25你不是用 stream 的方式?

@atian25 不是哦,请教一下用stream的方式应该写

A
atian25#3·7 年前
A
atian25#4·7 年前

其实如果非 win 场景下的话,直接 fork 个 tar 命令

T
Tseian#5·7 年前

fork tar命令,由于解压的文件比较大注意要关闭tar命令的-v参数,标准输出将默认分配的缓冲写满后会阻塞子进程,也可以调用fork的时候使用ignore参数将stdio忽略掉。也可以调节maxBuffer参数大小,让stdio有足够的缓冲空间,但在生产环境缓冲比较宝贵。

S
sbfkcel#6·7 年前

省事儿,可以child_process.spawn调用外部二进制工具。例如:『unzip』...

参与回复
登录后即可参与回复。登录