it-swarm-eu.dev

Come caricare un file su un server SFTP in C # (.NET)?

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?

64
Corey

Forse puoi scrivere/controllare winscp ?

Aggiornamento: winscp ora ha na libreria .NET disponibile come pacchetto nuget che supporta SFTP, SCP e FTPS

35
Kasprzol

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 .

7
Martin Vobr

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

2
ddc0660

Per un'altra opzione non libera provare edtFTPnet/PRO . Ha un supporto completo per SFTP e supporta anche FTPS (e ovviamente FTP), se necessario.

0
Bruce Blackshaw

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.

0
Mike L