通过 SCP 从网页传输文件

Transfer a file via SCP from a web page

我想为用户提供使用网页上传文件的选项。 远程服务器通过 SCP 接受文件。 此文件通常是 ISO 文件 (> 2GB)

这是流程:

File ----> Web page(PHP/JS) --- Apache
  |
  |
 scp
  |
  |
  v
SCP Remote server

是否可以通过网页完成此操作? 通常用户会启动 SCP 客户端并开始传输,但此页面的目的是在用户和服务器之间建立直接通信,而我的 Web 应用程序只是透明地启用它(传递 username/password 和 scp 参数)。我在 PHP:

中找到了这个函数

http://php.net/manual/en/function.ssh2-scp-send.php

由于 PHP 是服务器端,它会在 Apache Web 服务器中查找本地文件。我可以尝试 2 跳解决方案,但由于文件很大,这将使传输时间加倍。任何推荐的客户端库(HTTP 到 SCP)?

相似: JavaScript File Transfer SSH

由于不希望用户直接访问远程服务器,所以需要分两步完成。

为避免在初始传输完成后通过 SCP 锁定 Web 服务器进程以进行如此长的传输,最好将文件转储到由小脚本(守护程序)监视的文件夹中在网络服务器上,一旦看到文件就会传输文件。上传到 Web 服务器完成后,您只需让用户知道他们的文件将在大约 X 时间内准备就绪。

由于您希望允许的大小,您应该格外小心以正确验证您的用户,因为使用如此松散的配置很容易滥用您的系统。