Какой самый простой способ сопоставить папку в файловой системе с URL-адресом в Tomcat? - PullRequest
2 голосов
/ 13 марта 2010

Вот моя проблема ... У меня есть маленькое приложение-прототип (как правило, в Grails, размещенном на AWS), и я хочу добавить возможность пользователю загружать несколько (максимум 10) изображений. Я хочу сохранить эти образы на диске на сервере, в папке, которая находится за пределами моей WAR.

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

Итак, как проще всего создать виртуальную папку из моей карты URL в физическую папку на диске? Я вроде хочу ...

http://myapp.com/static

для сопоставления с папкой, которую я могу настроить, например,

/var/www/static

чтобы я мог иметь в своем коде ...

<img src="/static/user1/picture.jpg"/>

Мне не особо важно, можно ли просматривать полученные физические папки напрямую. Безопасность в конечном итоге станет проблемой, но это не с самого начала.

Итак, каковы мои варианты? Я посмотрел на виртуальные хосты на сайте apache, но он кажется более сложным, чем мне нужно.

Я не хочу использовать плагины статического рендеринга Grails.

1 Ответ

0 голосов
/ 02 августа 2011

У меня была похожая проблема, и я закончил сборку собственного сервлета для чтения в файл и передачи его на выход. Уловка в том, что если вы не поддерживаете типы mime, gzip, etags и заголовки кэша (такие как Last-Modified), это может быть очень неэффективно. Я закончил программировать все это (и использовал ehcache для кэширования на стороне сервера), но это не просто.

Однако на этот вопрос StackOverflow есть несколько полезных ответов.

Какой самый простой способ сопоставить папку в файловой системе с URL-адресом в Tomcat?

Один из наиболее привлекательных вариантов - FileServlet.

http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.html

...