Я сомневаюсь в этом. Я не верю, что это то, что библиотеки zlib предоставляют из памяти (хотя прошло уже 7 или 8 лет с тех пор, как я его использовал, современные документы, похоже, не указывают на то, что эта функция была добавлена).
Одной из возможностей может быть передача другого файла, который содержал бы несжатый размер (например, как file.zip
, так и file.zip.size
), но который представляет опасность, особенно если вы ошиблись в размере.
Другой альтернативой является то, что если распаковка сервера является дорогостоящей, но не требует немедленного выполнения, выполните это в фоновой задаче с более низким приоритетом (как в случае nice
в Linux). Но опять же, могут быть недостатки, если проверка размера начинает выполняться сзади (слишком много загрузок).
И я склонен думать о декомпрессии в терминах «взрывной декомпрессии», а не о том, что лучше использовать: -)