Carica automaticamente i file appena creati su un server SFTP

Un’applicazione ASP.NET (in esecuzione su Windows server / IIS 7) deve trasferire file di grandi dimensioni caricati dall’utente corrente su un server SFTP esterno. A causa delle dimensioni del file, l’idea è di farlo in modo asincrono.

L’idea è che l’applicazione ASP.NET memorizzi il file caricato su una directory locale del server Windows. L’utente corrente può continuare il suo lavoro. Un servizio Windows o un processo Quartz (altri strumenti (*) / idee?) È ora responsabile del trasferimento del file sul server SFTP esterno.

(*) Esistono strumenti esistenti che ascoltano i cambiamenti di una directory di Windows e quindi spostano i file su un server SFTP (inclusi gli errori di comunicazione / tentativi di comunicazione)?

Se non esiste una soluzione esistente, hai avuto requisiti simili? Cosa dobbiamo considerare? Poiché la connessione al server SFTP non è molto stabile, abbiamo bisogno di una gestione ottimizzata degli errori con funzionalità di auto retry.

Per controllare le modifiche in una directory locale in .NET, utilizzare la class FileSystemWatcher .


Se stai cercando una soluzione keepuptodate l’uso, usa il comando keepuptodate nello script WinSCP .

Un semplice esempio di script WinSCP (ad es. watch.txt ):

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

Esegui lo script come:

 winscp.com /script=watch.txt 

Anche se questo funziona solo, se i file caricati sono conservati nella cartella remota.

(Sono l’autore di WinSCP)