Tag: spring integration sftp

Spring Integration FTP – 使用远程目录表达式创建动态目录(Java配置)

使用Spring Integration的SFTP会话工厂(使用Java配置)时,我想动态设置远程SFTP服务器目录。 Spring文档说这是可能的: Spring Integration SFTP适配器 SpEL和SFTP出站适配器 与Spring Integration中的许多其他组件一样,通过指定两个属性remote-directory-expression和remote-filename-generator-expression ,您可以在配置SFTP出站通道适配器时受益于Spring Expression Language(SpEL)支持(参见上文) 。 表达式评估上下文将使用Message作为其根对象,从而允许您提供可以根据Message中的数据(来自有效负载或标头 )动态计算文件名或现有目录路径的表达式。 在上面的示例中,我们使用表达式值定义remote-filename-generator-expression属性,该表达式值根据其原始名称计算文件名 ,同时还附加后缀: – foo 。 但我实施这个问题很麻烦。 我似乎无法找到一个使用Spring的SpEL表达式语言的好例子。 下面的代码可以工作,并将我的文件发送到下面的根目录,或者如果我在LiteralExpression中输入一个特定的目录。 但我想将LiteralExpression表达式替换为使用“path”标题的SpelExpression,类似于我对“file”标题所做的操作,它动态调整正在上传的文件名。 @Configuration public class SftpConfig { @Autowired private SftpSettings sftpSettings; @Bean public SessionFactory sftpSessionFactory() { DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(true); factory.setHost(sftpSettings.getHostname()); factory.setPort(sftpSettings.getPort()); factory.setUser(sftpSettings.getUsername()); factory.setPassword(sftpSettings.getPassword()); factory.setAllowUnknownKeys(true); return new CachingSessionFactory(factory); } @Bean @ServiceActivator(inputChannel = […]

Spring SFTP入站chanel适配器删除本地文件

我已配置spring SFTP将文件从远程路径汇集到本地,处理一些作业,然后删除本地和远程文件。 下面的配置工作正常,除了本地文件删除,我没有找到任何删除本地文件的配置,比如delete-remote-files=”true” 这里,当文件从远程传输到本地时,调用服务激活器。 如何在服务激活器完成作业时配置删除本地文件? 编辑:远程和本地的有效负载删除都通过以下更改解决: