
因为要做阿里云 oss 文件批量压缩下载 目前 OSS 文件已经下载为 Buffer 数据
但是目前好像没有找到方法能 gzip 压缩多个文件
const result = data['source-files'].map(item=>client.get(item)) Promise.all(result).then(res=>{ resp.setHeader('content-type', 'gzip'); resp.send(Buffer.from(zlib.gzipSync(res[0].content))) },err=>{ resp.send('fail'); }).catch(err=>{ resp.send('fail'); }) 另外,下载下来的 GZIP 里的文件名也没有找到方法可以定义,求问有没有老哥有这方面经验的
1 yyfearth 2022-01-19 16:33:14 +08:00 gzip 本来就不是压缩多个文件用的 gzip 不是 zip 文件格式 只能压缩单个文件或者 Buffer/流 如果要压缩多个文件 一般先 tarball 打包 然后再 gzip 如果不想按照 tar 来打包 你也可以自己打包多个文件 比如直接把所有 buffer 拼接在一起再 gzip 然后存一下文件名和 offset 就好 |
4 ysc3839 2022-01-19 20:04:55 +08:00 via Android 建议一步到位用 tar+xz 或者 tar+zstd |
5 yyfearth 2022-01-20 07:45:17 +08:00 |