2009-06-06 20 views
1

私はJavaアプリケーションを使用しています。これは、複数のgigaファイルをあるFTPサーバーから別のFTPサーバーにコピーまたは移動します。現在、ftp getを使用して最初のfptサーバーから(実行されている)ローカルコンピューターにファイルをコピーし、ftp putを使用して2番目のftpサーバーにコピーします。私は、apacheからnetライブラリを使用します。あるftpサーバーから別のftpサーバーにファイルをコピーまたは移動する

ローカルコンピュータをバイパスして、あるFTPサーバーから別のFTPサーバーに直接コピーすることはできますか? 1つのアイデアは、java telnetセッションを作成し、いくつかのftpコマンドを送信することです。それは働くでしょうか?その他の提案はありますか?

+0

ターゲットサーバで何かを実行する権限がありませんか? – neesh

+0

はい、あります。だから私はtelnetやsshの解決策を検討している –

答えて

2

サーバーツーサーバーFTP転送は、「FXP」とも呼ばれます。 googleで "fxp java"を検索してみてください。

たとえば、this pageが役に立ちます。

4

これは間違いなく機能します。ただし、rcp(1)またはscp(1)を使用できる場合は、中間コピーまたはtelnetセッションは必要ありません。単純に使用

$ scp [email protected]:file [email protected]:file 

リモートセッションを使用する場合は、telnetではなくssh(1)の使用を検討してください。

1

Telnet/SSHが動作するはずです。使用可能なjava telnetクライアントライブラリを見つけて、そこから取得してください。

Here's an article JavaでのTelnetセッション。

4

はい、理論的には、これはFTPが機能する面白い方法のために可能です。実際には、中央のカスタムFTP "クライアント"を必要とし、2つのサーバーで作業する可能性があります。

FTP RFC (959).のセクション5.2に、サーバー間の転送シナリオが概略的に説明されています。一言で言えば、あるサーバーにはPASVコマンドが送信され、IPアドレスとポート番号が中間者に返されます。仲介業者はこれをPORTコマンドで他のサーバーに送信し、そのサーバーは最初のサーバーに直接データ接続を確立します。

関連する問題