На лету создание zip или tar? - PullRequest
1 голос
/ 21 октября 2010

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 21 октября 2010

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

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

0 голосов
/ 21 октября 2010

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

...