【问题标题】:How to read targz folder in memory using nodejs如何使用节点 js 读取内存中的 tar gz 文件夹
【发布时间】:2020-06-14 19:04:30
【问题描述】:

我有类似 tar.gz 的文件夹

  • 配置
    • f1
    • f2
    • myfile.json
    • myfile2.json . . . .

我想在内存中获取 myfile.json 和 myfile2.json 的内容,而不使用 nodejs 存储在磁盘上。

【问题讨论】:

    标签: node.js tar unzip


    【解决方案1】:

    看看tar-stream (https://www.npmjs.com/package/tar-stream) 和gunzip-maybe (https://www.npmjs.com/package/gunzip-maybe)。

    前者允许您将 tar 存档中的文件内容读取到内存中,而后者可以将 gzip 压缩的 tar 文件即时转换为普通的 tar 文件。

    软件包文档包含如何使用它们的示例。

    【讨论】:

      【解决方案2】:

      要访问您的存档文件,您必须根据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 支持异步流

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 1970-01-01
        相关资源
        最近更新 更多