управление загрузками файлов grails в войнах - PullRequest
0 голосов
/ 07 сентября 2011

Я разработал приложение Grails, в которое загружаются пользовательские файлы (документы и т. Д.), Они хранятся в соответствующей папке "web-app / upload".

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

Дополнительно мне нужна общая конфигурация для установки внешнего местоположения из этих файлов

Нашли ли вы решение?для этого?

PD: если я использую System.properties ['base.dir'], результат будет нулевым, а если я использую ApplicationHolder.application.mainContext.getResource (), он возвращает временный путь.(

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

Вы не должны загружать файлы в свою WAR-структуру. Вы должны загрузить их в какое-то внешнее местоположение.

1 голос
/ 02 августа 2013

Этот код получает родительскую папку, в которой находится приложение:

String path = servletContext.getRealPath("/"); 
String parentStr = new File(path).getParentFile().getParent(); 

Я имею в виду, если веб-приложение находилось в D: \ somefolder \ myWeb

path будет D: \ somefolder \ myWeb \ web-app

parentStr будет D: \ somefolder

Таким образом, вы можете сохранить файлы в D: \ somefolder \ files-outside-myWeb-context

Это то, что вы ищете?

1 голос
/ 08 сентября 2011

Мне удалось решить частичное следующим образом

    //for development environment
    def root = System.properties['base.dir']?.toString()
    if(!root){
        //for production environment in war deplements
        def tmpRoot = ApplicationHolder.application.mainContext.getResource('WEB-INF').getFile().toString()
        root = tmpRoot.substring(0, tmpRoot.indexOf(File.separator + 'temp' + File.separator))
    }
    if(!root){
        throw new Exception('Not found a valid path')
    }
    return root + File.separator

Я надеюсь, что это может быть полезно для других

С уважением, Yecid Pacífico

...