Загрузка SFTP-файла в несколько каталогов на одном и том же удаленном сервере - PullRequest
0 голосов
/ 21 января 2019

Я реализовал загрузку SFTP на удаленный сервер, используя пример здесь .

Мое требование заключается в том, что мне придется загружать один и тот же файл в несколько каталогов на одном сервере.Точное количество или расположение каталогов будет известно после производства.

В настоящее время моя реализация позволяет загружать в один каталог на одном сервере, установив remoteDirectoryExpression в обработчике сообщений.remoteDirectoryExpression происходит из файла свойств.Ожидается, что остальные каталоги будут сконфигурированы через запятую в том же свойстве.Я хотел бы, чтобы моя реализация извлекла каждый из этих разделенных запятыми каталогов из свойства и загрузила файл в каждый из них.

Возможно ли это вообще?Я сталкивался с каналами публикации-подписки, но в настоящее время пытаюсь понять, как включить их в мою реализацию.Даже в этом случае для каналов pub-sub требуется предварительная настройка в коде, где один канал = один каталог.Так я даже на правильном пути?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

попробуй с publishSubscribeChannel

.publishSubscribeChannel(s -> s
                        .subscribe(f -> f
                                .handle(Sftp.outboundAdapter(sftpSessionFactory())
                                        .remoteDirectory(getRemoteRootDir() + remoteDirectory1)

                                        .temporaryFileSuffix(".tmp")))
                        .subscribe(f -> f
                                .handle(Sftp.outboundAdapter(sftpSessionFactory())
                                        .remoteDirectory(getRemoteRootDir() + remoteDirectory2)
                                        .fileNameExpression(fileRenameExpression)
                                        .temporaryFileSuffix(".tmp")))
0 голосов
/ 21 января 2019

Ничего встроенного для этого нет.

Самый простой способ - создать пользовательский сплиттер в восходящем направлении и выдавать n сообщений с каталогом в заголовке, а затем использовать значение заголовка в удаленном каталоге.выражение.

...