Spring集成FTP使用java DSL递归读取文件

时间:2016-09-09 20:47:47

标签: spring-integration ftp-client

我想配置一个带有Java DSL的网关来读取来自FTP服务器递归的所有文件,因为它们位于不同的文件夹中。

我该怎么办?我会提供代码示例

1 个答案:

答案 0 :(得分:1)

这样的事情:

    @Bean
    public FtpOutboundGatewaySpec ftpOutboundGateway() {
        return Ftp.outboundGateway(this.ftpSessionFactory,
                AbstractRemoteFileOutboundGateway.Command.MGET, "payload")
                .options(AbstractRemoteFileOutboundGateway.Option.RECURSIVE)
                .regexFileNameFilter("(subFtpSource|.*1.txt)")
                .localDirectoryExpression("@ftpServer.targetLocalDirectoryName + #remoteDirectory")
                .localFilenameExpression("#remoteFileName.replaceFirst('ftpSource', 'localTarget')");
    }

    @Bean
    public IntegrationFlow ftpMGetFlow(AbstractRemoteFileOutboundGateway<FTPFile> ftpOutboundGateway) {
        return f -> f
                .handle(ftpOutboundGateway)
                .channel(remoteFileOutputChannel());
    }

    @Bean
    public PollableChannel remoteFileOutputChannel() {
        return new QueueChannel();
    }

项目test-cases的复制/粘贴。