2012-03-21 3 views
3

Я использую библиотеку SSHJ (https://github.com/shikhar/sshj).Как я могу использовать SSHJ для потоковой передачи файла через SCP?

я могу использовать sshClient.newSCPFileTransfer();, чтобы получить мой SCPClient объект, но тогда вызов scpClient.download() требует либо строк в качестве пути для конечного файла или объекта LocalDestFile. Все, что я хочу, это открыть поток для загрузки файла. Есть ли способ сделать это с помощью SSHJ?

Я рассмотрел различные реализации LocalDestFile, но ничего не было похоже на этот прецедент.

Конкретный вариант использования - загрузка удаленного файла и передача его в браузер клиента для веб-приложения. Я должен использовать SCP для этого и, следовательно, хочу использовать библиотеку SSHJ.

ответ

3

Я смог решить эту проблему, расширив класс InMemoryDestFile и передав в проект нужный объект OutputStream и вернув его в метод getOutputStream.

Пример показан в следующем GIST: https://gist.github.com/2157565

кажется, что вам нужно, чтобы закрыть OutputStream по своему усмотрению, когда вы сделали, так что следите за этим.