1

我已经设法使用以下配置将所有本地文件发送到目标 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;
}

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

例如

/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

我怎么能做到这一点,我

4

1 回答 1

1

new LiteralExpression("/path/on/ftp/")

不要使用 a LiteralExpression,即,呃...文字。

相反,使用:

new SpelExpressionParser().parseExpression(rdExpression)

rdExpression类似的东西在哪里...

"'/path/on/ftp/' + payload.absolutePath"
于 2017-08-22T13:21:38.503 回答