4

SSHJ ライブラリ ( https://github.com/shikhar/sshj ) を使用しています。

を使用sshClient.newSCPFileTransfer();してSCPClientオブジェクトを取得できますが、 を呼び出すにscpClient.download()は、宛先ファイルのパスとして文字列を指定するか、LocalDestFile オブジェクトを指定する必要があります。私が望むのは、ストリームを開いてファイルをダウンロードすることだけです。SSHJ を使用してこれを簡単に行う方法はありますか?

LocalDestFile のさまざまな実装を調べましたが、このユース ケースに該当するものはないように思われました。

具体的な使用例は、リモート ファイルをダウンロードし、それをクライアントのブラウザーにストリーミングして Web アプリに使用することです。これには SCP を使用する必要があるため、SSHJ ライブラリを使用したいと考えています。

4

1 に答える 1

4

InMemoryDestFileクラスを拡張し、目的OutputStreamのオブジェクトをコンストラクターに渡してgetOutputStreamメソッドに返すことで、これを解決することができました。

例を次のGISTに示します:https ://gist.github.com/2157565

OutputStream終わったら自分で閉じる必要があるようですので、気をつけてください。

于 2012-03-22T10:18:56.523 に答える