spring integratoin ftp如何将文件发送到不同的子文件夹

时间:2017-08-22 02:24:10

标签: spring-integration spring-integration-sftp

我已设法使用以下配置将所有本地文件发送到目标ftp服务器文件夹:

@Bean
@ServiceActivator(inputChannel = FtpDef.FTP_OUTBOUND_CHANNEL)
public MessageHandler handler() {
    FtpMessageHandler handler = new FtpMessageHandler(ftpSessionFactory());
    handler.setRemoteDirectoryExpression(
            // only one path can be set here 
            new LiteralExpression("/path/on/ftp/"));
    return handler;
}

现在我需要将每个文件保存在目录结构中作为本地文件。

e.g。

/base/a/a.txt  =>  /path/on/ftp/a/a.txt
/base/a/aa.txt  =>  /path/on/ftp/a/aa.txt

/base/b/b.txt  =>  /path/on/ftp/b/b.txt
/base/b/bb.txt  =>  /path/on/ftp/b/bb.txt

我怎么能做到这一点,我

1 个答案:

答案 0 :(得分:1)

  

new LiteralExpression(“/ path / on / ftp /”)

不要使用LiteralExpression,这是呃...字面意思。

相反,请使用:

new SpelExpressionParser().parseExpression(rdExpression)

其中rdExpression类似......

"'/path/on/ftp/' + payload.absolutePath"