2012-03-21 12 views
3

私はSSHJライブラリ(https://github.com/shikhar/sshj)を使用しています。SSHJを使用してSCP経由でファイルをストリーミングするにはどうすればよいですか?

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

私はLocalDestFileのさまざまな実装を見ましたが、このユースケースには当てはまりませんでした。

具体的な使用例は、リモートファイルをダウンロードし、Webアプリケーションのためにクライアントのブラウザにストリーミングすることです。私はこれにSCPを使用しなければならず、したがってSSHJライブラリを使いたいと思っています。

答えて

3

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

例は、以下のGISTに示されている:https://gist.github.com/2157565

あなたが完了したら、自分でOutputStreamを閉じて、そのために注意する必要があるようです。

関連する問題