在我们的 Java Web 应用程序中,客户希望将一些大文件上传到 SFTP 服务器并直接从那里下载。客户不想使用任何第三方工具,而是希望应用程序本身具有此功能。
文件上传部分由 JFileUpload 小程序组件和库处理。文件上传后,我可以找出存储文件的确切位置。并且该上传的文件将作为链接显示给用户,他们将单击下载该链接(如 HTTP 或 FTP 文件链接)。
所以我必须决定从 SFTP 服务器下载文件的策略。
一种选择是解析请求,然后连接 SFTP 服务器并通过 HTTP 服务器流式传输文件。但是这里的文件将通过 HTTP 而不是 SFTP 下载,而且它不会达到使用 SFTP 的目的。
我能想到的另一个选择是通过一个小程序,同样像上传。一旦 SFTP 文件的请求到达 HTTP 服务器,它将启动一个页面,其中包含一个带有目录浏览器的小程序,供用户决定保存路径。用户选择保存位置后,文件将自动开始从 SFTP 服务器下载到该位置。这样,连接将完全是 SFTP。
我想知道第二种方法的可行性有多大,以及是否有任何重要的事情我必须处理。哪些 SFTP 库最适合用于此类操作?
此外,请让我知道是否有其他更好的选择来进行上述活动。
编辑
看起来这篇文章看起来像是一个关于从 SFTP 服务器下载的方法的建议请求(可能来自标题,但我想不出任何其他标题!!)。感谢您提供有关 API 的建议,但对我们来说更重要的问题是找出一种方式,用户从 SFTP 服务器下载文件的请求是通过安全 SSH 而不是通过 HTTP 完成的。现在使用提到的 API,我们可以很好地将文件从 SFTP 服务器下载到 HTTP 服务器的文件系统,但之后如果我们必须将相同的文件重定向到用户的机器,我们必须使用 HTTP,这就是我们想要避免的。
我们的第二个想法是使用带有小程序的页面来启动用户客户端和 SFTP 服务器之间的 SFTP 会话,以解决上述问题。
实施起来会有多困难,我们在这方面应该采取什么方法?如果还有其他更好、更简单的方法来完成相同的任务,请提出建议。