C# SFTP 檔案上傳示範(SSH.NET )

先使用 NuGet 安裝 SSH.NET 套件,或是使用 .NET CLI 執行以下指令安裝:
	
dotnet add package SSH.NET
    

範例程式碼:
    
using SftpClient client = new("192.168.0.2", 22, "ruyut", "ruyut");

try
{
    client.Connect();
    if (client.IsConnected)
    {
        // 建立資料夾
        client.CreateDirectory("/myfolder");

        var localPath = "C:\\Users\\ruyut\\Downloads\\518256171954995345.jpg";
        var remotePath = "/myfolder/a.jpg";
        client.UploadFile(File.OpenRead(localPath), remotePath);
        Console.WriteLine("File uploaded");

        Console.WriteLine("查看遠端檔案:");
        foreach (var sftpFile in client.ListDirectory("/myfolder"))
        {
            Console.WriteLine($"\t{sftpFile.FullName}");
        }

        client.Disconnect();
    }
}
catch (SshConnectionException e)
{
    Console.WriteLine($"連接失敗: {e.Message}");
}
catch (SshAuthenticationException e)
{
    Console.WriteLine($"身份驗證失敗: {e.Message}");
}
catch (SftpPermissionDeniedException e)
{
    Console.WriteLine($"沒有權限: {e.Message}");
}
catch (Exception e)
{
    Console.WriteLine($"錯誤: {e.Message}");
}
    

另外如果沒有 SFTP 主機可以測試,可以使用 Free SFTP Server 這個工具做測試,開啟網頁就可以建立一個臨時的 SFTP 主機,有效時間為一小時。

參考資料:
github - sshnet/SSH.NET

留言

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com