【问题标题】:Custom directory scanner for sftp-inbound-channel-adaptersftp-inbound-channel-adapter 的自定义目录扫描器
【发布时间】:2017-08-21 03:34:07
【问题描述】:

我们的应用程序将读取和写入文件到目录结构为 {date}/{usercode}/* 的 FTP 文件夹。我们正在尝试使用 sftp 入站适配器。

<int-sftp:inbound-channel-adapter
        id="sftpInboundAdapter"
        channel="filesIn"
        filename-pattern="*.xml"
        session-factory="sftpSessionFactory"
        remote-directory="file:${fileserver.input.path}"
        local-directory="file:${fileserver.output.path}"
        delete-remote-files="false"
</int-sftp:inbound-channel-adapter>

有没有办法为 sftp 入站适配器设置自定义目录扫描器?

【问题讨论】:

    标签: spring-integration spring-integration-sftp


    【解决方案1】:

    目前不支持使用自定义扫描仪。

    作为一种解决方法,您可以将ouput-channel 设置为"nullChannel",并使用自定义扫描器配置单独的&lt;int-file:inbound-channel-adapter/&gt;

    【讨论】:

    • 谢谢加里!因此, 会将文件从远程目录移动到本地目录,并将消息发布到空通道。在本地目录中,我们使用 和目录扫描器。但是 int-sftp:inbound-channel-adapter 不会扫描子目录,我将只能按照以下链接下载文件。 “forum.spring.io/forum/spring-projects/integration/…”。所以使用自定义扫描仪没有意义。
    • 入站适配器没有“远程”扫描仪;只是一个本地的。如果要获取远程目录树,请使用递归 MGET 选项使用 outbound gateway
    • 我的要求是下载后删除远程位置的源文件。所以如果我们使用 MGET 源文件不会被删除。我也希望只删除下载的文件,因为源目录会不断更新。这种情况有什么解决方案吗?
    • 您可以将结果发送到一个拆分器,然后再发送到另一个使用 RM 命令的网关;您也可以使用递归 LS、拆分器、GET、RM 一次完成它们 - 请参阅 ftp sample app,它不使用递归 ls,但技术是相同的。
    • 谢谢加里!在使用拆分器时,我们正在发送文件以供删除和下载。这两个函数会并行执行吗?在这种情况下,如果选择删除正在下载的文件怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多