如何使用SSHJ通过SCP流式传输文件?

时间:2012-03-21 07:33:23

标签: java ssh scp sshj

我正在使用SSHJ库(https://github.com/shikhar/sshj)。

我可以使用sshClient.newSCPFileTransfer();来获取SCPClient对象,但是对scpClient.download()的调用需要String作为目标文件的路径或LocalDestFile对象。我想要的只是打开一个流来下载文件。有没有办法使用SSHJ轻松完成此操作?

我查看了LocalDestFile的不同实现,但似乎没有什么适用于这个用例。

具体用例是下载远程文件并将其流式传输到客户端的浏览器以获取Web应用程序。我必须使用SCP,因此想要使用SSHJ库。

1 个答案:

答案 0 :(得分:3)

我能够通过扩展InMemoryDestFile类并将我想要的OutputStream对象传递给构造函数并将其返回到getOutputStream方法来解决这个问题。

以下GIST中显示了一个示例:https://gist.github.com/2157565

看来你完成后需要自己关闭OutputStream,所以要小心。