it-swarm-id.com

Bagaimana cara mengunggah file ke server SFTP di C # (.NET)?

Apakah ada perpustakaan .NET gratis yang dapat digunakan untuk mengunggah file ke server SFTP (SSH FTP), yang memberikan pengecualian pada masalah dengan unggahan dan memungkinkan pemantauan perkembangannya?

64
Corey

Kode berikut menunjukkan cara mengunggah file ke server SFTP menggunakan komponen Rebex SFTP kami.

// 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();

Anda dapat menulis log komunikasi lengkap ke file menggunakan properti LogWriter sebagai berikut. Contoh output (dari komponen FTP tetapi output SFTP serupa) dapat ditemukan di sini .

client.LogWriter = new Rebex.FileLogWriter(
   @"c:\temp\log.txt", Rebex.LogLevel.Debug); 

atau mencegat komunikasi menggunakan acara sebagai berikut:

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);
}

Untuk info lebih lanjut lihat tutorial atau nduh uji coba dan periksa contoh .

7
Martin Vobr

Tidak ada solusi untuk ini dalam kerangka kerja .net.

http://www.eldos.com/sbb/sftpcompare.php menguraikan daftar opsi yang tidak bebas.

taruhan gratis terbaik Anda adalah memperpanjang SSH menggunakan Granados. http://www.routrek.co.jp/en/product/varaterm/granados.html

2
ddc0660

Untuk opsi lain yang tidak bebas coba edtFTPnet/PRO . Ini memiliki dukungan komprehensif untuk SFTP, dan juga mendukung FTPS (dan tentu saja FTP) jika diperlukan.

0
Bruce Blackshaw

Sayangnya, itu tidak ada dalam .NET Framework itu sendiri. Harapan saya adalah Anda dapat berintegrasi dengan FileZilla, tetapi saya tidak berpikir itu memperlihatkan antarmuka. Mereka memang memiliki skrip, saya pikir, tetapi tidak akan sebersih ini.

Saya telah menggunakan CuteFTP dalam sebuah proyek yang melakukan SFTP. Itu memperlihatkan komponen COM yang saya buat pembungkus .NET sekitar. Tangkapannya, Anda akan temukan, adalah izin. Ini berjalan dengan indah di bawah kredensial Windows yang menginstal CuteFTP, tetapi berjalan di bawah kredensial lain membutuhkan izin yang akan ditetapkan di DCOM.

0
Mike L