【问题标题】:Pulling Files Periodically and Recursively via SFTP using Spring Integration使用 Spring 集成通过 SFTP 定期和递归地拉取文件
【发布时间】:2018-07-04 18:15:12
【问题描述】:

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

到目前为止一切顺利。

我可以使用 SFTP 入站通道适配器 结合 PollerSftpPersistentAcceptOnceFileListFilter 来完成所有这些工作。

诀窍是我需要递归地执行此操作,我相信这会将我从 SFTP 入站 领域带入 SFTP 出站网关

但是,除非我遗漏了什么,否则这是没有帮助的。我需要定期的入站操作,所以我不能将 PollerSFTP 出站网关 一起使用。理想情况下,我不想关心远程目录结构的命名模式。

说实话,我对 Spring Integration 的了解并不是很深,所以希望我遗漏了一些明显的东西。如果需要,我可以扩展 SFTP 入站通道适配器 以使用 JSch 库创建我需要的内容(即使这是否实用也不确定,但我会在等待对此的回复时阅读相关内容邮政)。

当有更优雅或更标准的方法来解决我的这个问题时,我只是不想破解它。

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,加里。我会尝试你的建议并在这里报告。我确信它会起作用的。目前我有一个 MessageEmitter POJO,它的单一方法作为 ScheduledTask 执行并将注入的消息发送到注入的通道。
    • 完美!感谢您抽出宝贵时间回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多