gpt4 book ai didi

Node.js stream into zip archive 和 stream zip archive 作为对客户端的响应

转载 作者:搜寻专家 更新时间:2023-11-01 00:02:17 27 4
gpt4 key购买 nike

是否可以使用 Node.js 流构建一个 zip 存档,并在创建时通过对 HTTP GET 请求的响应将该 zip 存档提供给客户端/用户?我正在寻找一种最好避免将整个 zip 缓冲到服务器内存中的解决方案。

最佳答案

Node.js 中的 ZIP 支持目前有点古怪:标准库支持 zlib 功能,但它们在文件级别工作(即你不能创建包含完整树结构的 ZIP 存档),一些模块只能解压数据,一些可以创建ZIP文件的是从浏览器库移植的,因此不支持流。

压缩完整目录的最佳方式是使用子进程使用 zip 二进制文件,并将其输出通过管道传输到 HTTP 响应:

var child = require('child_process');
var zipProcess = child.spawn('zip', ['-r', '-', 'directory_to_be_compressed']);
zipProcess.stdout.pipe(res);

但是,如果你只需要压缩一个文件,你可以使用zlib standard library :

var gzip = zlib.createGzip();
var fs = require('fs');
var inp = fs.createReadStream('input.txt');
inp.pipe(gzip).pipe(res);

关于Node.js stream into zip archive 和 stream zip archive 作为对客户端的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22463535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com