使用Spring Integration通过SFTP定期和递归提取文件

时间:2018-07-04 18:15:13

标签: spring-integration sftp spring-integration-sftp

我需要通过SFTP定期定期连接到远程位置,并检查是否有新文件。如果有新文件,我需要下载并重命名。我不删除远程文件,只需要处理一次即可。

到目前为止,一切都很好。

我可以通过结合使用 SFTP入站通道适配器 Poller SftpPersistentAcceptOnceFileListFilter 来完成所有操作。

诀窍是我需要递归执行此操作,我相信这会使我从 SFTP Inbound 领域转移到 SFTP Outbound Gateway

但是,除非我缺少任何东西,否则这没有帮助。我需要定期进行入站操作,因此不能将 Poller SFTP Outbound Gateway 一起使用。理想情况下,我不想关心远程目录结构的命名模式。

说实话,我对Spring Integration的了解不是很深,所以希望我能缺少一些明显的东西。如果需要的话,我可以扩展 SFTP入站通道适配器以使用JSch库创建我需要的内容(即使很实际也不确定,但是我将在等待答复的同时阅读此内容发布)。

当有更优雅或更标准的方法来解决我的这个问题时,我只是不想改变自己的方式。

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我需要定期进行入站操作,因此不能将轮询器与SFTP出站网关一起使用。

只需轮询POJO入站通道适配器,该适配器将返回您要轮询的目录,并将消息发送到出站网关。

Docs here。它显示了XML配置,但是也可以使用Java配置或Java DSL来完成。