我正在尝试实现camelsftp,这样我就可以监听远程文件目录中的事件。当有事件发生时,我应该下载文件并将其移动到其他位置
我的当前路线设置为:
String uri= sftp://test.remoteadd.cc/opt/tomcat/webapps/file-watch?noop=true&privateKeyFile=src/main/resources/keypair.pem&recursive=true&download=true&stepwise=false&useUserKnownHostsFile=false&username=ubuntu&binary=true&streamDownload=true
RouteBuilder rb = new RouteBuilder() {
@Override
public void configure() throws Exception {
from(routeUriBuilder.toString())
.routeId(routeHandlerId)
.setHeader("fileName").simple("${file:name}")
.bean(RemoteFileWatcherEventProcessor.class, "process(${body}, ${headers})")
.to("file:/opt/test.cc/tomcat/webapps?fileName=${body.fileName}&autoCreate=true");
}
};
现在,我面临着一些错误
我没有得到修改和删除文件的事件。我只得到创建事件的触发器。
1条答案
按热度按时间guz6ccqo1#
FTP不会公开你所请求的任何类型的事件。但是Camel可以通过使用idempotKey选项来检测服务器上文件的更改。例如,
idempotentKey=${file:name}-${file:modified}
(摘自 Camel 聊天)