streamzip
СОДЕРЖАНИЕ
ИМЯ
streamzip - создание архива zip из стандартного потока ввода
СИНТАКСИС
producer | streamzip [opts] | consumer
producer | streamzip [opts] -zipfile=output.zip ОПИСАНИЕ
Эта программа считывает данные из stdin, сжимает их в контейнер zip и, по умолчанию, записывает потоковый архив zip в stdout. Временные файлы не создаются.
Контейнер zip, записанный в stdout, по необходимости записывается в потоковом формате. Большинство программ, которые читают файлы Zip, могут обрабатывать потоковый файл zip, но если межплатформенная совместимость важна, и ваш рабочий процесс позволяет записывать файл zip непосредственно на диск, вы можете создать не потоковый файл zip, используя параметр zipfile.
ПАРАМЕТРЫ
- -zip64
-
Создать контейнер zip, совместимый с Zip64. Используйте этот параметр, если входной объём данных превышает 4 ГБ.
По умолчанию отключено.
- -zipfile=F
-
Записать контейнер zip в файл с именем
F.Используйте параметр
Streamдля принудительного создания потокового архива zip. - -member-name=M
-
Этот параметр используется для именования "файла" в контейнере zip.
По умолчанию - '-'.
- -stream
-
Игнорируется при записи в
stdout.Если задан параметр
zipfile, включение этого параметра запустит создание потокового архива zip.По умолчанию: всегда включено при записи в
stdout, в противном случае выключено. - -method=M
-
Сжать с использованием метода
M.Допустимые названия методов:
* store Store without compression * deflate Use Deflate compression [Deflault] * bzip2 Use Bzip2 compression * lzma Use LZMA compression * xz Use xz compression * zstd Use Zstandard compressionОбратите внимание, что для сжатия Lzma требуется установка
IO::Compress::Lzma.Обратите внимание, что для сжатия Zstd требуется установка
IO::Compress::Zstd.По умолчанию
deflate. - -0, -1, -2, -3, -4, -5, -6, -7, -8, -9
-
Устанавливает уровень сжатия для
deflate. Игнорируется для всех других методов сжатия.-0означает отсутствие сжатия, а-9означает максимальное сжатие.По умолчанию 6
- -version
-
Отобразить номер версии
- -help
-
Отобразить справку
Примеры
Создание файла zip, считывая данные из стандартного потока ввода
$ echo Lorem ipsum dolor sit | perl ./bin/streamzip >abcd.zip Проверка содержимого abcd,zip с помощью стандартной утилиты unzip
Archive: abcd.zip
Length Date Time Name
--------- ---------- ----- ----
22 2021-01-08 19:45 -
--------- -------
22 1 file Обратите внимание, как Name установлено в -. Это значение по умолчанию для некоторых утилит zip, где имя члена не задано.
Если вы хотите явно задать имя файла, используйте параметр -member-name следующим образом
$ echo Lorem ipsum dolor sit | perl ./bin/streamzip -member-name latin >abcd.zip
$ unzip -l abcd.zip
Archive: abcd.zip
Length Date Time Name
--------- ---------- ----- ----
22 2021-01-08 19:47 latin
--------- -------
22 1 file Когда следует создавать архивы Zip в потоковом режиме
Потоковый файл Zip полезен в ситуациях, когда вы не можете искать назад/вперед в файле.
Хороший пример - когда вы предоставляете динамическое содержимое с веб-сервера непосредственно в сокет без необходимости создания временного файла zip в файловой системе.
Аналогично, если ваш рабочий процесс использует командную строку Linux с пайплайнами.
ПОДДЕРЖКА
Общие отзывы/вопросы/отчеты об ошибках следует отправлять на https://github.com/pmqs/IO-Compress/issues (предпочтительно) или https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Compress.
АВТОР
Paul Marquess pmqs@cpan.org.
АВТОРСКИЕ ПРАВА
Авторские права (c) 2019-2022 Paul Marquess. Все права защищены.
Эта программа является свободно распространяемым программным обеспечением; вы можете перераспределять и/или изменять его в соответствии с теми же условиями, что и Perl сам по себе.
© 1993–2023 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.38.0/streamzip