На лету создание zip или tar?

Я не могу беспокоиться об этом, но если это очень просто, я могу рассмотреть это. Сайт, над которым я работаю над дизайном, должен содержать сотни тысяч файлов. Я не знаю, будет ли у нас только одна загрузка или несколько. Прямо сейчас варианты: A) Просто файл B) Архив, который имеет файл + лицензию и условия.

Я пытаюсь понять, что может быть эффективно предлагать и то и другое и использовать что-то вроде file.open/read с префиксом заголовка архива до и после него, который содержит лицензию и другое содержимое zip. Больше всего меня беспокоит, что открытие / чтение файла не будет таким эффективным, как разрешение серверу передавать файл, и если его трудно динамически генерировать и изменять содержимое zip-файла (если пользователь хочет изменить лицензию или если мы хотим добавить другие данные, такие как описание автора, URL автора и постоянная ссылка на сайт)

Насколько это эффективно и как я могу создать файл динамически только исходный файл и данные, извлеченные из базы данных?

PS: я использую debian/apache/asp.net, используя xsp.net и mono.

2 ответа

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

Вы можете использовать zip-библиотеки ( System.IO.Packaging.ZipPackage, dotnetzip, SharpZipLib) или программы командной строки событий (скажем, 7zip) для сжатия файла. Библиотека должна предлагать лучшую производительность.

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

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