2015-03-21 4 views
2

Я новичок в Spring, и сейчас я работаю над интеграцией с поддержкой ftp.Передача файла с ftp-сервера на другой ftp-сервер с использованием Spring интеграции ftp support

  • Я сделал переход из локального каталога на сервер (filZilla).
  • Я загрузил файл с сервера, и все было в порядке.

Но я хочу найти, как я могу передать файл с FTP-сервера на другой FTP-сервер, и если можно прочитать файл, не загружая его с сервера.

ответ

1

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

Тем не менее, вы можете использовать два FtpRemoteFileTemplate с (использовать метод execute) для потоковой передачи данных из InputStream к OutputStream.

0
FtpRemoteFileTemplate server1; 
FtpRemoteFileTemplate server2 
server1.get("filetotransfer", new InputStreamCallback() { 
    @Override 
    public void doWithInputStream(final InputStream stream) throws IOException { 
     server2.executeWithClient(new ClientCallback<FTPClient, Void>() { 
      @Override 
      public Void doWithClient(final FTPClient client) { 
       try (final OutputStream outStream = client.storeFileStream("filedestination");) { 
        IOUtils.copyLarge(stream, outputStream) 
       } 
     } 
    } 
});