【发布时间】:2020-06-14 19:04:30
【问题描述】:
我有类似 tar.gz 的文件夹
- 配置
- f1
- f2
- myfile.json
- myfile2.json . . . .
我想在内存中获取 myfile.json 和 myfile2.json 的内容,而不使用 nodejs 存储在磁盘上。
【问题讨论】:
我有类似 tar.gz 的文件夹
我想在内存中获取 myfile.json 和 myfile2.json 的内容,而不使用 nodejs 存储在磁盘上。
【问题讨论】:
看看tar-stream (https://www.npmjs.com/package/tar-stream) 和gunzip-maybe (https://www.npmjs.com/package/gunzip-maybe)。
前者允许您将 tar 存档中的文件内容读取到内存中,而后者可以将 gzip 压缩的 tar 文件即时转换为普通的 tar 文件。
软件包文档包含如何使用它们的示例。
【讨论】:
要访问您的存档文件,您必须根据zip format 结构解析存档缓冲区,发现所需文件的缓冲区偏移量。您可以使用'zlib' nodejs 模块来解压文件数据。
您可以尝试使用“adm-zip”,它为您提供存档解析功能。 这是一个给你的例子
const AdmZip = require('adm-zip');
const archive = new AdmZip('<folder-path>');
const file1 = archive.getEntry('<file-name>');
const data = file1.getData();
!!注意这个例子是同步的,但是 lib 支持异步流
【讨论】: