нужен URL для SFTP InputStream

Я пишу приложение, которому необходимо подключиться через sftp к хранилищу данных GATE, которое находится на сервере. Чтобы открыть хранилище данных, мне нужен его URL-адрес. Я получаю доступ к хранилищу данных через sftp и авторизацию с открытым/закрытым ключом с помощью класса Jsch.

Я могу получить данные с помощью ChannelSftp, а затем получить InputStream для соответствующего каталога. Я пытался получить путь с помощью sftp.getHome(), но это дает мне только относительный путь. Однако для подключения к хранилищу данных мне нужно что-то вроде:

"sftp://path/to/datastore"

Есть ли способ получить URL-адрес sftp InputStream?

Я знаю, что могу загрузить данные из InputStream в локальный файл, но я не хочу этого делать, потому что хранилище данных огромно. Я также знаю, что могу подключиться к sftp, указав имя пользователя и пароль в URL-адресе, но я хочу использовать открытый ключ.


person user2778342    schedule 15.12.2016    source источник
comment
Для чего вам нужен URL? Где бы вы его использовали?   -  person Martin Prikryl    schedule 15.12.2016
comment
Мне это нужно, чтобы открыть хранилище данных в GATE (общая архитектура для текстовой инженерии). Для подключения к существующему хранилищу данных требуется URL-адрес. Вот ссылка на javadoc [gate.ac.uk/ releases/latest/doc/javadoc/gate/Factory.html].   -  person user2778342    schedule 15.12.2016
comment
Итак, какое отношение ваш вопрос имеет к JSch и его InputStream? - Похоже, вам просто нужен URL-адрес SFTP для использования в какой-то проприетарной системе.   -  person Martin Prikryl    schedule 15.12.2016
comment
Мне было интересно, могу ли я как-то получить URL-адрес из InputStream. Я также не знаю, как получить URL-адрес SFTP с ключом вместо пароля. Хотя, думаю, это отдельный вопрос.   -  person user2778342    schedule 15.12.2016


Ответы (1)


Нет ничего лучше URL-адреса SFTP.

Десять лет назад была предпринята попытка стандартизировать URL-адрес SFTP:
https://datatracker.ietf.org/doc/html/draft-ietf-secsh-scp-sftp-ssh-uri-04

И он так и не был завершен, и срок действия предложения истек много лет назад.


Таким образом, даже если JSch может генерировать что-то вроде URL-адреса SFTP (он не может), вы не можете знать, работает ли он с другой системой, поскольку общего стандарта нет.

Вы должны сгенерировать URL самостоятельно, в соответствии с проприетарным синтаксисом целевой системы.


Я никогда не видел никакого программного обеспечения, которое каким-то образом позволяло бы вам указать закрытый ключ в URL-адресе SFTP.

Как правило, вы можете загрузить закрытый ключ в какой-либо агент аутентификации, из которого система может прочитать ключ.

person Martin Prikryl    schedule 15.12.2016