Как прочитать папку targz в памяти, используя nodejs - PullRequest
0 голосов
/ 02 марта 2020

У меня есть папка tar.gz, например

  • config
    • f1
    • f2
    • myfile. json
    • myfile2. json. , , .

Я хочу получить содержимое для myfile. json, myfile2. json в памяти без сохранения на диске с помощью nodejs.

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

, чтобы получить доступ к вашим архивированным файлам, вы должны проанализировать буфер архива в соответствии со структурой zip , определяющей смещение буфера нужного файла. Вы можете использовать модуль ' 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();

!! обратите внимание, что этот пример является синхронным, однако библиотека поддерживает асинхронный поток

0 голосов
/ 02 марта 2020

Посмотрите на tar-stream (https://www.npmjs.com/package/tar-stream) и gunzip-maybe (https://www.npmjs.com/package/gunzip-maybe).

Первый позволяет читать содержимое файла внутри архива tar в память, в то время как последний может преобразовать сжатый файл tar в обычный файл tar на лету.

Документация пакета содержит примеры того, как их использовать.

...