Esiste una libreria .NET gratuita con la quale posso caricare un file su un server SFTP (SSH FTP), che genera eccezioni su problemi con il caricamento e consente il monitoraggio dei suoi progressi?
Forse puoi scrivere/controllare winscp ?
Aggiornamento: winscp ora ha na libreria .NET disponibile come pacchetto nuget che supporta SFTP, SCP e FTPS
Il codice seguente mostra come caricare un file su un server SFTP utilizzando il nostro componente Rebex SFTP .
// create client, connect and log in
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);
// upload the 'test.Zip' file to the current directory at the server
client.PutFile(@"c:\data\test.Zip", "test.Zip");
client.Disconnect();
È possibile scrivere un registro di comunicazione completo in un file utilizzando una proprietà LogWriter come segue. È possibile trovare esempi di output (dal componente FTP ma l'output SFTP è simile) qui .
client.LogWriter = new Rebex.FileLogWriter(
@"c:\temp\log.txt", Rebex.LogLevel.Debug);
o intercettare la comunicazione usando gli eventi come segue:
Sftp client = new Sftp();
client.CommandSent += new SftpCommandSentEventHandler(client_CommandSent);
client.ResponseRead += new SftpResponseReadEventHandler(client_ResponseRead);
client.Connect("sftp.example.org");
//...
private void client_CommandSent(object sender, SftpCommandSentEventArgs e)
{
Console.WriteLine("Command: {0}", e.Command);
}
private void client_ResponseRead(object sender, SftpResponseReadEventArgs e)
{
Console.WriteLine("Response: {0}", e.Response);
}
Per maggiori informazioni vedi tutorial oppure download una prova e controlla campioni .
Non esiste una soluzione per questo all'interno del framework .net.
http://www.eldos.com/sbb/sftpcompare.php delinea un elenco di opzioni non libere.
la tua migliore scommessa gratuita è estendere SSH usando Granados. http://www.routrek.co.jp/en/product/varaterm/granados.html
Per un'altra opzione non libera provare edtFTPnet/PRO . Ha un supporto completo per SFTP e supporta anche FTPS (e ovviamente FTP), se necessario.
Sfortunatamente, non si trova nello stesso .NET Framework. Il mio desiderio è che tu possa integrarti con FileZilla, ma non credo che esponga un'interfaccia. Credo che abbiano degli script, ma ovviamente non sarà così pulito.
Ho usato CuteFTP in un progetto che fa SFTP. Espone un componente COM sul quale ho creato un wrapper .NET. Il trucco, troverai, sono le autorizzazioni. Funziona magnificamente con le credenziali di Windows che hanno installato CuteFTP, ma per funzionare con altre credenziali è necessario impostare le autorizzazioni in DCOM.