Как эффективно извлекать определенный json из большого zip-файла в браузере?

#javascript #optimization #zip #unzip #zipfile

#javascript #оптимизация #распаковать молнию #zip

Вопрос:

Я хочу извлечь файлы с именами message_1.json из большого (13 ГБ) zip-файла в веб-браузере (с использованием javascript).

Эти файлы находятся в messages/inbox/some_random_name_xsfdscd/message_1.json , messages/inbox/some_random_name_sfasggf/message_1.json , messages/inbox/some_random_name_polsnbd/message_1.json и т.д. в zip-файле.

Я попробовал использовать JSZip. К сожалению, он должен загрузить весь ZIP-файл целиком, прежде чем сможет его обработать. Это занимает слишком много времени и памяти, что часто приводит к сбою страницы.

Кроме того, существует библиотека zip-js, которая может получить дерево файлов перед распаковкой. Однако он не может обрабатывать zip-файлы размером более 4 ГБ.

Итак, можно ли извлекать только определенные файлы из больших архивов в веб-браузере, не занимая слишком много памяти и времени? Если да, то каким образом?

Комментарии:

1. Я не думаю, что вы можете частично разархивировать zip-файл, но мне любопытно посмотреть, что скажут другие люди.

2. У меня такая же проблема. Я пробовал различные пакеты npm: pako, unzipper, adm-zip, zip-js, fflate, но безуспешно. Кто-нибудь нашел решение для извлечения / выкачивания / распаковки определенного файла из большого zip-файла без чтения всего zip-файла?