首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Camel SFTP使用者读取后不删除文件

Apache Camel SFTP使用者读取后不删除文件
EN

Stack Overflow用户
提问于 2020-10-23 03:23:47
回答 1查看 487关注 0票数 1

我看到了Apache Camel SFTP的奇怪行为。即使在设置delete=true属性之后,它也不会在接收到文件后删除文件。我正在使用3.0.0-M3版本的camel-ftp

以下是我的SFTP配置,

代码语言:javascript
复制
sftp://<<HOST_NAME>>:<<PORT>>/<<PATH>>?username=<<USERNAME>>" +
                    "&password=<<PASSWORD>>" +
                    "&preferredAuthentications=password" +
                    "&readLock=changed" +
                    "&readLockMinAge=30000" +
                    "&delay=20000" +
                    "&delete=true";

现在Camel能够读取文件,但是它在读取后不会删除该文件。在看医生的时候,上面写着

删除(使用者)-如果为真,该文件将在成功处理后被删除。

  • 如何定义骆驼是否处理成功?我们是否需要为骆驼设置任何exchange属性来标记其成功处理?

在收到文件后,我所做的就是将它移到另一条路径,如下所示

代码语言:javascript
复制
from(endpointUri).to("direct:procesSftpFile");

我应该把它从direct改为vm还是seda

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-27 09:42:40

似乎没有人面对这个问题,我不知怎么搞清楚了这是从哪里开始发生的。

问题不是因为Camel sftp组件,而是因为我正在调用的代码片段。

我的第二部分是这样的,

代码语言:javascript
复制
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行为?也许我应该在另一个问题上问这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64493432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档