我們正在嘗試在Camel中構建一個流程服務器。我們有幾個客戶端,通過FTP提供文件。我們必須鏡像ftp文件,但我們只想下載我們還沒有的文件。客戶端的服務器必須保持不變,因此不允許更改,只能讀取。Apache Camel和FTP處理
String to = DownloadFolder.getInstance().getDownloadFolder() + File.separator + "test";
from("ftp://[email protected]/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時,我將能夠檢查下載,但是如何繼續。至少現在我無法處理單個文件進行下載。接下來的問題是,這個工作被打破了,因爲jms希望得到臨時文件,而不是最終文件。
也許任何人都有一個關於如何繼續解決這個問題的提示。
不幸的是,功能idempotent = true實際上只檢查文件名。文件更新後,它不能識別這些更改。但這是我們的一個要求。 – xyx
是的,這是一個好主意,允許人們自定義密鑰並指定包含時間戳等。我已經登錄了一張票:https://issues.apache.org/jira/browse/CAMEL-6006 –
@ClausIbsen:我試過了使用indempotentKey與2.11-SNAPSHOT和sftp方案,但駱駝抱怨一個未知的參數。更改隻影響文件組件,還是應該可以通過sftp使用indempotentKey? – mdo