我看到了Apache Camel SFTP的奇怪行为。即使在设置delete=true属性之后,它也不会在接收到文件后删除文件。我正在使用3.0.0-M3版本的camel-ftp
以下是我的SFTP配置,
sftp://<<HOST_NAME>>:<<PORT>>/<<PATH>>?username=<<USERNAME>>" +
"&password=<<PASSWORD>>" +
"&preferredAuthentications=password" +
"&readLock=changed" +
"&readLockMinAge=30000" +
"&delay=20000" +
"&delete=true";现在Camel能够读取文件,但是它在读取后不会删除该文件。在看医生的时候,上面写着
删除(使用者)-如果为真,该文件将在成功处理后被删除。
在收到文件后,我所做的就是将它移到另一条路径,如下所示
from(endpointUri).to("direct:procesSftpFile");我应该把它从direct改为vm还是seda
发布于 2020-10-27 09:42:40
似乎没有人面对这个问题,我不知怎么搞清楚了这是从哪里开始发生的。
问题不是因为Camel sftp组件,而是因为我正在调用的代码片段。
我的第二部分是这样的,
from("direct:procesSftpFile")
.log("...")
// logging and other regular processing
....
// sending to vm InOnly
.to("vm:queue1?exchangePattern=InOnly")
.. some more processing..
.to("vm:queue2?exchangePattern=InOnly")所以问题是在上面的片段中调用那些queue1和queue2。
注释它们,修复它,sftp开始删除文件。为了调用VM,而不是to(),我使用producerTemplate.asyncSend作为解决方案。
我仍然感到困惑的是,如果我们使用的是InOnly交换模式,那么它为什么会影响sftp行为?也许我应该在另一个问题上问这个问题。
https://stackoverflow.com/questions/64493432
复制相似问题