2016-04-21 9 views
-1

Ich bin auf der Suche nach einer Bibliothek, die ich in einer .NET 4.5x-Lösung verwenden kann, die mir eine SFTP-URL, Benutzername und Passwort erlaubt, eine Verbindung zum entfernten sftp-Server herzustellen und Dateien herunterzuladen. Die Bibliothek sollte ...SFTP-Bibliothek für .NET?

  1. frei

  2. Muster oder Dokumentationen wie es zu benutzen Irgendwelche Vorschläge

?

Danke!

Antwort

4

Ich verwende derzeit WinSCP. Es verfügt über eine .NET-Assembly, die zum programmgesteuerten Erstellen und Verwalten von SFTP-, SCP-, FTP- und WebDAV-Verbindungen verwendet werden kann.

Hier ist ein Beispiel aus ihrer Dokumentation:

using System; 
using WinSCP; 

class Example 
{ 
    public static int Main() 
    { 
     try 
     { 
      // Setup session options 
      SessionOptions sessionOptions = new SessionOptions 
      { 
       Protocol = Protocol.Sftp, 
       HostName = "example.com", 
       UserName = "user", 
       Password = "mypassword", 
       SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" 
      }; 

      using (Session session = new Session()) 
      { 
       // Connect 
       session.Open(sessionOptions); 

       // Upload files 
       TransferOptions transferOptions = new TransferOptions(); 
       transferOptions.TransferMode = TransferMode.Binary; 

       TransferOperationResult transferResult; 
       transferResult = session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions); 

       // Throw on any error 
       transferResult.Check(); 

       // Print results 
       foreach (TransferEventArgs transfer in transferResult.Transfers) 
       { 
        Console.WriteLine("Upload of {0} succeeded", transfer.FileName); 
       } 
      } 

      return 0; 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("Error: {0}", e); 
      return 1; 
     } 
    } 
} 
+0

Dank! Nachdem ich das gepostet hatte, fragte ich einen Kollegen, der dieselbe Bibliothek vorgeschlagen hatte. –

+0

Für die * "eine SFTP-URL gegeben ..." *, verwenden Sie ['SessionOption.ParseUrl'] (https://winscp.net/eng/docs/library_sessionoptions_parseurl) statt die' Protocol', 'HostName', 'UserName',' Password' und 'SshHostKeyFingerprint' einzeln. –

+0

@MartinPrikryl Ist das der empfohlene Weg, es jetzt zu tun? Ich habe dieses Beispiel direkt aus der WinSCP-Dokumentation gezogen. – kettch