Я хочу предоставить пользователям возможность загружать файл с помощью веб-страницы.
Удаленный сервер принимает файл через SCP.
Обычно это файлы ISO (> 2 ГБ)
Это поток:
File ----> Web page(PHP/JS) --- Apache
|
|
scp
|
|
v
SCP Remote server
Можно ли сделать это через веб-страницу?
Обычно пользователь запускает клиент SCP и запускает передачу, но цель этой страницы — установить прямую связь между пользователем и сервером, а также мое веб-приложение, чтобы просто включить это прозрачно (передача имени пользователя / пароля и параметров scp). Я нашел эту функцию в PHP:
http://php.net/manual/en/function.ssh2-scp-send.php
Поскольку PHP на стороне сервера, он ищет локальный файл на веб-сервере Apache. Я могу попробовать решение с 2 скачками, но так как файлы большие, это удвоит время передачи. Любая клиентская библиотека, которая рекомендуется (HTTP для SCP)?
Аналогичный:
JavaScript File Transfer SSH
Поскольку вы не хотите, чтобы пользователи обращались к удаленному серверу напрямую, это нужно сделать в два этапа.
Чтобы избежать блокировки процесса веб-сервера для такой длительной передачи через SCP после первоначальной передачи, может быть хорошей идеей просто сбросить файл в папку, которая отслеживается небольшим скриптом (демоном) на веб-сервере, который передаст файлы, как только увидит их. Когда загрузка на веб-сервер будет завершена, вы можете просто сообщить пользователю, что его файл будет готов примерно через X времени.
Из-за размера, который вы хотите разрешить, вы должны быть очень осторожны, чтобы правильно аутентифицировать своих пользователей, так как будет очень легко злоупотреблять вашей системой с такой свободной конфигурацией.
Других решений пока нет …