2015-02-06 2 views
0

Приложение ASP.NET (работающее на сервере Windows/IIS 7) должно передавать файлы большого размера, загруженные текущим пользователем на внешний SFTP-сервер. Из-за размера файла идея заключается в том, чтобы сделать это асинхронно.Автоматическая загрузка вновь созданных файлов на SFTP-сервер

Идея состоит в том, что приложение ASP.NET хранит загруженный файл в локальном каталоге сервера Windows. Текущий пользователь может продолжить свою работу. Служба Windows или задание Quartz (другие инструменты (*)/идеи?) Теперь отвечают за передачу файла на внешний SFTP-сервер.

(*) Существуют ли существующие инструменты, которые прослушивают изменения каталога Windows, а затем перемещают файлы на SFTP-сервере (включая обработку ошибок/попыток обмена сообщениями)?

Если нет существующего решения, у вас были схожие требования? Что мы должны учитывать? Поскольку соединение с SFTP-сервером не очень стабильно, нам нужна оптимизированная обработка ошибок с функцией автоматического повтора.

ответ

1

Чтобы посмотреть изменения в локальном каталоге в .NET, используйте FileSystemWatcher class.


Если вы ищете из раствора коробки, используйте keepuptodate command в WinSCP scripting.

Простой пример WinSCP сценария (например, watch.txt):

open sftp://username:[email protected]/ 
keepuptodate c:\local_folder_to_watch /remote_folder 
exit 

Выполнить сценарий как:

winscp.com /script=watch.txt 

Хотя это работает только, если загруженные файлы сохраняются в удаленной папке.

(я автор WinSCP)

+0

Спасибо за ваш большой вклад! – levis

Смежные вопросы