SFTP или FTPS при отправке через C#.Net

Я прочитал эту статью:

Они очень отличаются друг от друга, хотя оба преследуют одну и ту же цель. SFTP использует один канал для передачи и получения всех соответствующих данных, в то время как FTPS использует другой канал, который динамически определяется для данных. У FTPS часто возникали проблемы при прохождении через брандмауэр, так как он не знал порт, который использовался данными, и не мог пропускать трафик через порт. FTPS отправляет сообщения в текстовом формате, что позволяет людям читать журналы и определять, что произошло во время сеанса. Это невозможно с SFTP, так как сообщения не в текстовом, а в двоичном формате.

Подробнее: Разница между FTPS и SFTP | Разница между | FTPS против SFTP /технологии/интернет/разница-между-ftps-и-sftp/#ixzz20KUGWr00

Я не хотел ничего предполагать, так как это только усложнит мою работу, если я ошибаюсь, но когда я отправляю файл через С#/.Net4 следующим образом:

  var request = (FtpWebRequest) WebRequest.Create(FtpUrl + filename);
    request.Method = WebRequestMethods.Ftp.UploadFile;

    var secureString = new SecureString();
    foreach (var b in Encoding.Default.GetBytes(FtpPassword))
      secureString.AppendChar((char) b);
    request.Credentials = new NetworkCredential(FtpUsername, secureString);
    request.EnableSsl = true;

Это будет SFTP или FTPS? Я предполагаю, что FTPS, как указано в статье, из-за EnableSsl.

Если это не SFTP, могу ли я заменить его на SFTP? У меня проблемы с отправкой через брандмауэр.

Спасибо!


person ErocM    schedule 11.07.2012    source источник


Ответы (1)


SFTP использует SSH для передачи файла. Вы можете изменить его на это, если вы используете ssh на удаленной машине. Я не уверен, что С# поддерживает это. Согласно этому: http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/817b4f71-7e88-4b62-b48a-8a5edca800fd/ ответ — нет.

FTPS добавляет SSL на FTP. Вроде как HTTPS — это SSL поверх HTTP.

Ваш код определенно использует FTPS.

Проблемы с брандмауэром, вероятно, описаны здесь: http://en.wikipedia.org/wiki/Ftps#Firewall_incompatibilities

person gb92    schedule 11.07.2012
comment
вот что я понял, тывм :) - person ErocM; 11.07.2012
comment
C# не имеет встроенной поддержки SFTP, но есть несколько сторонних библиотек, в том числе бесплатных, которые реализуют ее. - person JamieSee; 11.07.2012