2012-03-29 4 views
2

In Web-Anwendungen müssen oft Dateien per SSH (per SFTP-Protokoll) auf Remote-Hosts mit statischem Inhalt hochgeladen werden. Die Frage ist: Was ist die beste Vorgehensweise, um mit SSH-Verbindung in einer solchen Situation zu arbeiten? Muss ich jedes Mal eine Sitzung (Verbindung) erstellen, wenn ein Benutzer ein Bild oder eine Datei hochlädt?Sollten Sie eine separate SSH-Sitzung für jeden Upload von einer Web-App verwenden

Momentan habe ich es mit Singleton Bean mit dem Typ com.jcraft.jsch.Session im Kontext gelöst. Beim Start der Webanwendung wird eine Session-Bean erstellt und eine Verbindung hergestellt. Wenn also eine Datei angefordert wird, ist die Sitzung bereit, dies zu tun. Aber im Falle eines Netzwerkproblems wird die Sitzung zerstört und der Server muss sich erneut verbinden. Wie es geht?

+1

Ist dies eine Frage über SSH via Java oder über Dateiuploads? wenn letzteres - kennst du das commons-paket? http://commons.apache.org/fileupload/ – moodywoody

+0

Bei dieser Frage geht es darum, die SSH-Sitzung ständig geöffnet zu halten und die damit verbundenen Probleme zu beheben – vacuum

Antwort

1

Wenn die erneute Verbindung für jeden Upload zu teuer für Sie ist, sollten Sie den SSH-Verbindungspool implementieren. Mir sind solche Pools für das SSH-Protokoll nicht bekannt. Sie können Ideen aus HTTP-Verbindungspools anpassen - siehe ThreadSafeClientConnManager von Apache HttpClient.