Я пытаюсь проверить в моем локальном каталоге исходных файлов новые файлы, выполнить простое преобразование, а затем отправить файлы на удаленный сервер через SFTP с помощью Spring Integration.
Я использую файловый адаптер для опроса моего исходного каталога на предмет новых файлов. Теперь я хочу загрузить файл на удаленный сервер сразу после преобразования. Есть ли обработчик сообщений, который делает именно это, чтобы я мог инициировать загрузку внутри своей цепочки IntegrationFlow или я должен записать файл и загрузить его по SFTP в отдельном процессе (создать запланированное задание только для процесса загрузки)?
@Bean
public IntegrationFlow integrationFlow() {
return IntegrationFlows.from(fileReader(), spec -> spec.poller(Pollers.fixedDelay(1000)))
.transform(transformer, "transform")
.handle( message handler )
.get();
}
@Bean
public FileReadingMessageSource fileReader() {
FileReadingMessageSource source = new FileReadingMessageSource();
source.setDirectory(new File("src/main/resources/file/outbox"));
return source;
}
Обновлен код:
@Bean
public IntegrationFlow integrationFlow() {
return IntegrationFlows.from(fileReader(), spec -> spec.poller(Pollers.fixedDelay(1000)))
.transform(transformer, "transform")
.handle(Sftp.outboundAdapter(sftpSessionFactory)
.remoteDirectory(sftpRemoteDirectory)
)
.get();
}