Camelでプロセスサーバーを構築しようとしています。FTP経由でファイルを提供するクライアントがいくつかあります。ftp ファイルをミラーリングする必要がありますが、まだ持っていないファイルのみをダウンロードしたいと考えています。クライアントのサーバーはそのままにしておく必要があるため、変更は許可されず、読み取りのみが許可されます。
String to = DownloadFolder.getInstance().getDownloadFolder() + File.separator + "test";
from("ftp://user@server/downloads/&binary=true&stepwise=false&localWorkDirectory=/tmp")//
.process(new ProcessCheckForDownload(to))//
.to("file://" + to + "?keepLastModified=true")//
.to("jms:queue:FTP_FILE_RECEIVED");
問題は、ダウンロードを確認する前に ftp がファイルをダウンロードしていることです。download=false を設定すると、ダウンロードを確認できますが、次に進む方法。少なくとも今のところ、ダウンロード用のファイルを 1 つも処理できません。次の問題は、jms が最終ファイルではなく一時ファイルを取得したいため、このジョブが壊れていることです。
おそらく、この問題をどのように進めるかについてのヒントを誰かが持っているでしょう。