скопировать или переместить файл с одного сервера ftp на другой - PullRequest
1 голос
/ 07 июня 2009

У меня есть Java-приложение, которое копирует или перемещает кучу гигафайлов с одного ftp-сервера на другой. В настоящее время он копирует файл с первого сервера fpt на локальный компьютер (на котором он работает) с помощью ftp get, а затем копирует его на второй сервер ftp с помощью ftp put. Я использую сетевую библиотеку от Apache.

Можно ли скопировать его напрямую с одного ftp-сервера на другой, минуя локальный компьютер? Одна идея состоит в том, чтобы создать сеанс Java telnet и отправить пару команд ftp. Это будет работать? Любые другие предложения?

Ответы [ 5 ]

4 голосов
/ 07 июня 2009

Да, теоретически это возможно благодаря интересному способу работы FTP. На практике, скорее всего, потребуется посредственный FTP-клиент, работающий с двумя серверами.

Сценарий межсерверной передачи описан и схематически проиллюстрирован в разделе 5.2 FTP RFC (959). Одним словом, одному серверу отправляется команда PASV, которая возвращает IP-адрес и номер порта для посредника. Посредник отправляет это на другой сервер в команде PORT, и этот сервер устанавливает соединение для передачи данных непосредственно с первым сервером.

4 голосов
/ 07 июня 2009

Это, безусловно, будет работать. Однако если вы можете использовать rcp (1) или scp (1), вам не нужна промежуточная копия или сеанс telnet. Просто используйте

$ scp user@sys1:file user@sys2:file

Если вы используете удаленный сеанс, рассмотрите возможность использования ssh (1) вместо telnet.

2 голосов
/ 07 июня 2009

Передача с сервера на сервер FTP также называется «FXP». Попробуйте поискать "fxp java" в google.

Например: эта страница может быть полезна.

1 голос
/ 07 июня 2009

Telnet / SSH должен работать. Найдите полезную клиентскую библиотеку Java telnet и возьмите ее оттуда ...

Вот статья о сценариях сеанса telnet с Java.

0 голосов
/ 05 августа 2009

Я знаю скрипт PHP. Вы можете использовать это для перемещения файла с сервера на сервер без доступа SSH. Это очень быстро и может перемещать несколько файлов: http://dlvn.net/web-development/move-files-from-server-to-server/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...