在网络应用程序中,通常需要通过 SSH(通过 SFTP 协议(protocol))将文件上传到具有静态内容的远程主机。 问题是:在这种情况下使用 SSH 连接的最佳做法是什么? 每次用户上传图片或文件时,我都需要创建 session (连接)吗?
目前,我用上下文中类型为 com.jcraft.jsch.Session 的单例 bean 解决了这个问题。在 web 应用程序启动时,创建一个 session bean 并进行连接。因此,当请求上传文件时, session 已准备就绪。但如果网络出现问题, session 将被破坏,服务器需要重新连接。怎么做?
最佳答案
如果每次上传重新连接对您来说成本太高,您应该实现 SSH 连接池。我不知道 SSH 协议(protocol)存在这样的池。您可以采用 HTTP 连接池的想法 - 请参阅 ThreadSafeClientConnManager来自 apache HttpClient。
关于java - 您是否应该为网络应用程序的每次上传使用单独的 SSH session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9922935/