Ответ 1
в соответствии с этим выпуском страницы unzip github - https://github.com/EvanOxfeld/node-unzip/issues/73,
- модуль unzip больше не поддерживается.
- проблема, связанная с потоковой передачей от http, кажется, была решена в вилке, называемой unzip2 (также очень старой).
попробуйте
npm install unzip2
есть и другие модули MIT zip, которые вы можете попробовать:
вы также можете найти эту библиотеку - https://www.npmjs.com/package/yauzl, которая объясняет, почему формат файла "zip" не очень подходит для потоковой передачи.
https://www.npmjs.com/package/yauzl#no-streaming-unzip-api
Из-за дизайна формата файла .zip невозможно интерпретировать .zip файл от начала до конца (например, из читаемого поток), не жертвуя правильностью. Центральный справочник, который является полномочием по содержимому .zip файла, находится в конце .zip файл, а не начало. API потоковой передачи потребуется либо буферизировать весь .zip файл, чтобы добраться до Центрального каталога до интерпретация чего-либо (преодоление цели потоковой передачи интерфейс) или полагаться на локальные заголовки файлов, которые чередуются через .zip файл. Однако локальные заголовки файлов явно денонсированные в спецификации как ненадежные копии Центрального Directory, поэтому доверие к ним было бы нарушением спецификации.
Любая библиотека, которая предлагает потоковый unzip API, должна сделать одну из выше двух компромиссов, что делает библиотеку либо нечестной, либо несоответствующим (обычно последнему). Эта библиотека настаивает на правильность и приверженность спецификации, и поэтому не предлагает потокового API.
есть 354 результатов, чтобы "распаковать" на NPM - https://www.npmjs.com/search?q=unzip
какую бы библиотеку вы ни выбрали, обязательно сначала напишите программу node.js, используя эту библиотеку, которая извлекает содержимое вашего ошибочного zip файла непосредственно из файловой системы.
Как только это сработает, вы сможете добавить дополнительную сложность веб-сервера.