我已设法使用以下配置将所有本地文件发送到目标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
我怎么能做到这一点,我
答案 0 :(得分:1)
new LiteralExpression(“/ path / on / ftp /”)
不要使用LiteralExpression
,这是呃...字面意思。
相反,请使用:
new SpelExpressionParser().parseExpression(rdExpression)
其中rdExpression
类似......
"'/path/on/ftp/' + payload.absolutePath"