Apache commons net FTPClientを使用して、バッチジョブの一部としてファイルを配布しています。クライアントはカプセル化されていますが、大まかに次のメソッド呼び出しを発行します(簡潔にするために、エラー処理、ストリーム処理などを省略しています)。
FTPClient client = new FTPClient();
client.connect("127.0.0.1", 22);
client.login("user", "password");
client.setFileType(FTP.BINARY_FILE_TYPE);
client.changeWorkingDirectory("path/");
client.storeFile("file1.txt", new ByteArrayInputStream("hello world".getBytes()));
client.disconnect();
上記のコマンドを発行すると、次のコマンドがFTPサーバーに送信されます。
USER zoor
PASS ********
TYPE I
CWD path/
PORT 127,0,0,1,229,72
STOR file1.txt
そして、これはうまくいきます。ただし、現在、ファイルをサポートしていない、CWD
またはSTOR
代わりにとに依存しCD
ているレガシーシステムにファイルを送信する必要がある状況にありPUT
ます。
今私の質問は、FTPClientにこれらのコマンドを使用させるにはどうすればよいですか?
sendCommand
このメソッドを使用してCD
コマンドを送信することはできますが、PUTコマンドを使用してこれを適切に(そして正しく)行う方法がわかりません(ファイルデータも送信する必要がある場合)。
注:このようなファイルを配布するには、FTPよりも優れた方法があることを認識していますが、残念ながら、私の手は縛られています。受信者はFTPを使用しており、変更する意思はありません。
更新:レガシーシステムはAS/400マシンです。