Как я могу использовать SSHJ для потоковой передачи файла через SCP? - PullRequest
3 голосов
/ 21 марта 2012

Я использую библиотеку SSHJ (https://github.com/shikhar/sshj).

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

Я посмотрел на различные реализации LocalDestFile, но ничего не показалось применимым к этому варианту использования.

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

1 Ответ

3 голосов
/ 22 марта 2012

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

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

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

...