spring 集成 ftp 如何将文件发送到不同的子文件夹
spring integratoin ftp how to send files to different sub-folders
我已成功将所有本地文件发送到目标 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
我怎样才能做到这一点,我
new LiteralExpression("/path/on/ftp/")
不要使用 LiteralExpression
,即,呃...字面意思。
改为使用:
new SpelExpressionParser().parseExpression(rdExpression)
其中 rdExpression
类似于...
"'/path/on/ftp/' + payload.absolutePath"
我已成功将所有本地文件发送到目标 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
我怎样才能做到这一点,我
new LiteralExpression("/path/on/ftp/")
不要使用 LiteralExpression
,即,呃...字面意思。
改为使用:
new SpelExpressionParser().parseExpression(rdExpression)
其中 rdExpression
类似于...
"'/path/on/ftp/' + payload.absolutePath"