можно ли загружать непосредственно на удаленный сервер с помощью SFTP на ASP.net MVC
-
11-09-2019 - |
Вопрос
В настоящее время я что-то разрабатываю, используя asp.net MVC, но у меня еще нет опыта работы с этим, поэтому, пожалуйста, помогите мне.
У меня есть форма для загрузки видео пользователем.Текущая идеальная концепция загрузки на удаленный сервер состоит в том, чтобы загрузить его на текущий сервер, а затем использовать FTP для отправки его на удаленный сервер.
Для меня это не совсем быстро, так как вам нужно загрузить на текущий сервер (время x1), а затем текущий сервер отправить на новый сервер (время x2), так что время увеличивается вдвое.
Итак, моя идея состоит в том, чтобы заставить пользователя загрузить его на текущий сервер и ПОКА пользователь загружает, текущий сервер добавляет файл в БД, а также одновременно отправляет файл на удаленный сервер с помощью SFTP...
возможно ли это и есть ли в этой концепции дыры в безопасности?
Большое спасибо
Решение
Я бы рекомендовал использовать НУЛЬ FTP-сервер для вашего тестирования.Если вы подключитесь к нему с помощью клиента Filezilla, вы заметите, что он предлагает пользователю принять SSL-ключ.Он делает это так же, как putty.exe или любой другой SSH-клиент.
Итак, вашему коду просто нужно принять SSL-соединение, и с этого момента это просто обычные команды FTP.
Программно я не знаю, как принять сертификат, поэтому все, что я могу предложить, это настроить пакетный файл для запуска sftp-клиента Putty и отправки файлов, а затем заставить ваш код вызывать пакетный файл.Я почти уверен, что ASP поддерживает вызов пакетного файла.
Другие советы
У меня была другая идея.Вы можете купить версию WinSCP за 30 долларов, и она синхронизирует локальный каталог с удаленным каталогом SFTP.Это избавит вас от необходимости программировать его.
Вы можете загрузить непосредственно на SFTP, используя Java-апплет.Эти апплеты имеют перехватчики, позволяющие вам (приложению ASP.NET MVC) узнать, когда загрузка завершена.