Как я загружаю файл на сервер SFTP в C# (.NET)? [закрытый]

67
задан palswim 14 November 2018 в 22:22
поделиться

5 ответов

Возможно, можно ли писать сценарий/управлять winscp?

Обновление: winscp теперь имеет библиотека.NET доступный как пакет самородка , который поддерживает SFTP, SCP и FTPS

37
ответ дан Aaron 24 November 2019 в 14:44
поделиться

Нет никакого решения для этого в .net платформе.

http://www.eldos.com/sbb/sftpcompare.php основы список несвободных опций.

Ваша лучшая свободная ставка должна расширить SSH использование Granados. http://www.routrek.co.jp/en/product/varaterm/granados.html

2
ответ дан ddc0660 24 November 2019 в 14:44
поделиться

К сожалению, это не находится в самой Платформе.NET. Мое желание состоит в том, что Вы могли интегрироваться с FileZilla, но я не думаю, что он представляет интерфейс. У них действительно есть сценарии, я думаю, но это не будет столь же чисто, очевидно.

я использовал CuteFTP в проекте, который делает SFTP. Это представляет COM-компонент, который я создал обертку.NET вокруг. Выгода, Вы найдете, является полномочиями. Это работает красиво под учетными данными Windows, которые установили CuteFTP, но работающий под другими учетными данными требует, чтобы полномочия были установлены в DCOM.

0
ответ дан Mike L 24 November 2019 в 14:44
поделиться

Для другого несвободного варианта попробуйте edtFTPnet / PRO . Он имеет всестороннюю поддержку SFTP, а также при необходимости поддерживает FTPS (и, конечно, FTP).

0
ответ дан 24 November 2019 в 14:44
поделиться

Следующий код показывает, как загрузить файл на SFTP-сервер с помощью нашего компонента 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();

Вы можете записать полный журнал связи в файл, используя свойство LogWriter, как показано ниже. Примеры вывода (из компонента FTP, но вывод SFTP аналогичен) можно найти здесь.

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

или перехватить коммуникацию с помощью событий следующим образом:

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

Для получения дополнительной информации смотрите учебник или скачайте пробную версию и проверьте примеры.

8
ответ дан 24 November 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: