これに対処する最良の方法は、ファイルの場所をexternalized configuration fileに保存することです。
標準化された場所(たとえば/etc/myappname/CSVFileConfig.groovy
)を指定するか、環境変数などを使用して設定ファイルパスを渡します。例はExternalized Configurationを参照してください。
その後、あなたは、単にそのように、そのextenal設定にローカルファイルへの実際のパスを追加することができます。通常の設定操作を使用してアクセス、最後に
// 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
}
限りあなたの主な懸案事項は何ですか? OpenCSV(most of the Grails libraries for CSV parsingで使用)などのCSVライブラリを使用している場合、ファイルのオープンと解析が処理されます。
それ以外のセキュリティ問題については、一般的な方法でそれらを処理する方法がわかりません。特定のシナリオによって異なります。私はURLから来るものが高いリスクファクターを持っていると思う。
CSV解析は感謝の気持ちで行われます。 – paislee
さて、あなたはまだ "安全かつ適切にファイルを読み込む方法" *に答えるために多くのことを提供しているわけではありませんが、 'new File(path).withReader {reader - > ... } 'は、ファイルのオープンとクローズを処理します。 – OverZealous
ここに具体的なものがないと申し訳ありません。一般的には、私のために解決したソリューションを持っているのは不快です。 Grails/Groovyの新機能ですが、熱心なコーダーで、別の戦略を選択する理由を探しています。ヘルプをよろしくお願いいたします。 – paislee