Java オブジェクトをアンマーシャリングし、それを入力ストリームに変換し、JSCH API を使用して SFTP で転送しようとするシナリオがあります。
基本的に -> 私たちの目標は、jSCH にオブジェクトをファイルに変換せずに INPUTSTREAM の形式でプッシュさせ、次の例のように送信することです。
// create a session
session = jsch.getSession(ftpUserName, ftpHost, ftpPort);
channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpTunnel = (ChannelSftp) channel;
// push the file you created using the channel created by the session
File f = new File(fileToTransmit);
>> **sftpTunnel.put(new FileInputStream(f), f.getName());**
ただし、最後の行を切り替えて、ファイルに関連付けずにプレーンな古い InputStream を使用する必要があります。
jSCH API によると - FileInputStream を使用しないことは可能です:
void put(InputStream src, String dst)
これをどのように行うかについてのアイデアはありますか?
ObjectOutputStream を使用できますか? オブジェクトを取得してアンマーシャリングし、中間でファイルを作成せずに入力ストリームにフィードする方法はありますか?
ありがとう