Пакет Spring запускается в контейнере docker для записи файла из контейнера docker — непосредственно на удаленный сервер SFTP

#docker #spring-batch #sftp

Вопрос:

Мое пакетное задание spring, выполняемое в контейнере docker, считывает данные из базы данных и создает плоский файл. На данный момент файл создается внутри контейнера, но когда данные большие, я хочу создать плоский файл в удаленном расположении SFTP. Каков был бы наилучший способ реализовать это без создания физического файла внутри контейнера.

Ответ №1:

Я бы использовал org.apache.commons.net.ftp.FTPClient класс, storeFileStream метод для получения OutputStream , а затем записывал бы непосредственно в него OutputStream при чтении строк из вашей базы данных.

См. https://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html#storeFileStream-java.lang.Струна-

Комментарии:

1. Это работает нормально, хотя производительность работы немного снизилась, но я бы согласился.