2016-12-15 54 views
0

我正在編寫一個應用程序,需要通過sftp連接到服務器上的GATE數據存儲。爲了打開數據存儲,我需要有它的網址。我在Jsch類的幫助下通過sftp和公鑰/私鑰授權訪問數據存儲。需要SFTP InputStream的URL

我可以將數據與ChannelSftp,然後得到一個的InputStream爲各自的目錄。我試圖用sftp.getHome()得到路徑,但那隻給了我相對路徑。爲了連接到數據存儲,不過,我需要的是這樣的:

"sftp://path/to/datastore" 

有沒有辦法讓SFTP的InputStream的網址是什麼?

我知道我可以將InputStream中的數據加載到本地文件,但我不想那麼做,因爲數據存儲很大。我也知道我可以通過在URL中輸入用戶名和密碼來連接到sftp,但我想使用公鑰。

+0

你需要什麼URL?你會在哪裏使用它? –

+0

我需要它在GATE(用於文本工程的通用體系結構)中打開數據存儲。它需要一個URL來連接到一個現有的數據存儲。這裏是鏈接到javadoc [https://gate.ac.uk/releases/latest/doc/javadoc/gate/Factory.html]。 – user2778342

+0

那麼你的問題與JSch及其InputStream有什麼關係? - 你似乎只需要一個SFTP URL用於某些專有系統。 –

回答

0

沒有什麼像SFTP URL。

十年前有標準化的SFTP URL的嘗試:
https://tools.ietf.org/html/draft-ietf-secsh-scp-sftp-ssh-uri-04

,這是從來沒有完成,提案年前到期。


所以,即使JSch可能會產生類似的SFTP網址(不能),你不能,知道它與其他系統的工作原理有沒有共同的標準。

您必須自己生成URL,以符合目標系統的專有語法。


我從來沒有見過任何軟件可以讓你在SFTP URL中指定一個私鑰。

通常,您可以將私鑰加載到系統可以從中讀取密鑰的某個身份驗證代理。