Spring SFTP入站chanel适配器删除本地文件

我已配置spring SFTP将文件从远程路径汇集到本地,处理一些作业,然后删除本地和远程文件。

下面的配置工作正常,除了本地文件删除,我没有找到任何删除本地文件的配置,比如delete-remote-files="true"

                 

这里,当文件从远程传输到本地时,调用服务激活器。

如何在服务激活器完成作业时配置删除本地文件?

编辑:远程和本地的有效负载删除都通过以下更改解决:

     

在将消息发送到流后,入站适配器从不采取任何操作(自行); 它不知道有关下游流拓扑的任何信息 – 异步切换等。远程删除是在获取文件之后和发送消息之前完成的。

由于您已经在使用伪事务并在轮询器线程上执行所有操作,因此可以使用after-commit-expression进行删除。

另一种技术是向最终使用者(在您的情况下为服务激活器)添加request-handler-advice 。 这在retry-and-more示例应用程序中得到了certificate。

编辑:

回应您的评论如下; 不,用SpEL做两件事是不可能的 – 但是,你可以使用

  

并在postProcess通道下游的流程中执行任何操作。

但是,我不清楚为什么要从filter中删除成功和失败的文件 – 您应该只使用AcceptAllFileListFilter

顺便说一下,我没有看到你的acceptOnceFilter在这里被使用 – 你是否打算将它配置为local-filter属性?