Я думаю, что лучший способ справиться с этим - сохранить местоположение файла в внешнем файле конфигурации .
Итак, вы должны определить стандартизированное местоположение (например, /etc/myappname/CSVFileConfig.groovy
) или передать путь к файлу конфигурации, используя переменную среды или что-то подобное. См. Внешняя конфигурация для примеров.
Затем вы можете просто добавить фактический путь к локальному файлу в эту конфигурацию экстентов, например, так:
// CSVFileConfig.groovy
my.custom.csv.path = ...
Наконец, получите доступ к нему, используя обычные операции конфигурации:
// in your Quartz job
def path = grailsApplication.config.my?.custom?.csv?.path
if(!path) {
// no file to load
} else {
// load file
}
Что касается чтения файла, каковы ваши основные проблемы? Если вы используете библиотеку CSV, такую как OpenCSV (используется в в большинстве библиотек Grails для анализа CSV ), она будет обрабатывать открытие и анализ файла.
Что касается проблем безопасности, за исключением этого, я не уверен, как обращаться с ними в общем виде. Это будет зависеть от вашего конкретного сценария. Я думаю, что тот, который приходит с URL, имеет более высокий фактор риска.