Можно ли открыть архив TrueZIP из потока?

Используя TrueZIP, есть ли способ открыть и изменить существующий файл ZIP из потока (он, конечно, может быть выведен с использованием другого потока)?

У меня есть код для изменения ZIP, который отлично работает, пока я работаю с существующим настоящим ZIP-файлом в файловой системе, но у меня есть требование, чтобы все временные файлы были зашифрованы при хранении на диске. В большей части нашего приложения это легко сделать (используя CipherOutputStream и CipherInputStream), но у меня есть одна функция, которая использует TrueZIP для обновления существующего ZIP-файла. Эта часть очевидно терпит неудачу, если файл зашифрован.

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

Причина, по которой мы используем TrueZIP, заключается в том, что нам нужна поддержка Zip64 (которая, как я знаю, включена в Java 7, но мы не можем сейчас переключиться).

1 ответ

Решение

Нет, файл архива должен храниться в доступной файловой системе, чтобы использовать его с TrueZIP. Но у вас есть ряд других вариантов:

  • TrueZIP использует экземпляры интерфейса IOPoolService для управления временными файлами. Вы можете предоставить свою собственную реализацию, которая шифрует все временные файлы или, может быть, просто хранит их в куче (если они маленькие). Взгляните на ФАЙЛ драйвера TrueZIP, чтобы увидеть эталонную реализацию.

  • Вы можете использовать ParanoidZipRaesDriver для использования зашифрованных файлов RAES ZIP. Этот драйвер гарантирует, что никакие незашифрованные временные файлы не используются, ограничивая число одновременных потоков для записи файла архива одним.

  • Вы можете использовать стандартные ZIP-драйверы с FsOutputOption.ENCRYPT для включения шифрования WinZip AES. Чтобы убедиться, что незашифрованные временные файлы не используются, вы можете переопределить метод ZipDriver.newOutputSocket, как это делает ParanoidZipRaesDriver.

Другие вопросы по тегам