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:password@host/ 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)