Grails и Tomcat: где хранить загруженные файлы в файловой системе? - PullRequest
7 голосов
/ 09 февраля 2011

Я написал небольшое веб-приложение с использованием Grails.Полученный war-файл развертывается на сервере приложений Tomcat.

Приложение имеет функцию загрузки вложений.Я решил сохранить загруженные файлы на диск (а не хранить большие двоичные объекты в БД).

Сначала я выбрал путь к файлу внутри каталога webapp для хранения файлов, но затем я понял, что этот каталог будетперезаписывается при каждом развертывании нового war-файла.

Существует ли рекомендация для "где хранить загруженные файлы в локальной файловой системе" ?

Спасибо за вашу помощь.

Ответы [ 4 ]

2 голосов
/ 09 февраля 2011

AlphaOne, мы делаем что-то похожее на то, что вы просите, но мы используем веб-сервер Apache перед Tomcat.Мы выбираем полный путь из файла конфигурации и пишем в него.Скажите "/ TMP / Брендинг".Затем мы также выбираем путь URL для этого местоположения из файла конфигурации (скажем, «myapp / branding») и используем его в наших GSP.Затем в Apache мы сопоставляем запросы приложений на этот URL («myapp / branding»), чтобы перейти непосредственно к расположению файла в обход Tomcat.

2 голосов
/ 04 февраля 2012

Создайте отдельный проект для загрузки и передайте имя пользователя для создания пользовательской папки. Предоставьте ссылку на этот проект из основного проекта, когда пользователь хочет загрузить файлы.

1 голос
/ 09 февраля 2011

Я бы порекомендовал использовать переменную окружения для хранения местоположения или, что еще лучше, использовать переменную окружения, чтобы задать местоположение вашего файла свойств конфигурации и задать там свойство. Таким образом, местоположение становится настраиваемым операционной группой, которая должна управлять проблемами файловой системы / конфигурации.

0 голосов
/ 24 августа 2012

Полагаю, вы ищете лучшее практическое решение. Ну, на самом деле их нет, но есть некоторые места, в которые вы должны их не помещать. Я предполагаю, что среда UNIX.

Например:

  • $ CATALINA_HOME. Просто оставьте папку приложения такой, какая она есть, не загрязняйте ее загруженными файлами.
  • / тпм. Никогда не знаешь, кто это очистит.

Хотя я не уверен, что это заблокированная спецификация, вы можете посмотреть: структура каталогов linux .

Как я читаю, у вас есть 3 варианта:

  1. Если Tomcat запускается с использованием выделенного пользователя -> Домашний каталог пользователей. Например ~ / Fileuploads / appname
  2. Поскольку var можно рассматривать как растущий каталог данных приложения. Например: / var / Fileuploads / appname
  3. Оставьте это администратору системы. Проверьте это: Внешняя конфигурация Grails

Удачи!

...