Обслуживание файлов через контроллеры с частичной поддержкой загрузки - PullRequest
3 голосов
/ 13 ноября 2010

Мне нужно обслуживать файлы через Grails, доступ имеют только пользователи с разрешением, поэтому я не могу предоставить им статическую ссылку на контейнер. Система может передавать двоичные файлы клиенту без проблем, но теперь (из-за проблем с пропускной способностью на клиенте) мне нужно реализовать сегментированные или частичные загрузки в контроллерах.

Есть плагин или проверенное решение этой проблемы? Может быть какой-то плагин tomcat / apache для ограничения доступа к файлам с определенными правилами или временными билетами, чтобы я мог делегировать проблему «возобновить загрузку» или «сегментированную загрузку» контейнеру.

Также мне нужно войти и сохранить статистику загрузок пользователей. Мне нужна хорошая производительность, поэтому я думаю, что делать это в контроллере не очень хорошая идея.

Извините, плохой английский.

1 Ответ

0 голосов
/ 15 февраля 2012

Существует плагин для apache - https://tn123.org/mod_xsendfile/ В данном случае не имеет значения, что вы используете за apache. Используя этот плагин, вы получите специальный заголовок X-SENDFILE с указанием пути к файлу для обслуживания, и Apache позаботится о фактической загрузке файла для текущего запроса.

Если вы используете Nginx, вы должны использовать заголовок X-Accel-Redirect, см. http://wiki.nginx.org/XSendfile

...