Я использую следующий код для загрузки файла на сервер sFTP
. Я сделал тестовую загрузку, используя FileZilla, и файл загружен успешно.SftpClient с использованием Url вместо IP в качестве хоста
try
{
var client = new SftpClient(host, port, username, password);
client.Connect();
client.ChangeDirectory(workingDir);
var listDirectory = client.ListDirectory(workingDir);
foreach (var file in files)
{
var fileStream = new FileStream(file, FileMode.OpenOrCreate);
client.BufferSize = 4 * 1024; // bypass payload error large files
client.UploadFile(fileStream, Path.GetFileName(file));
Log.Info(string.Format("File [{0}] upload complete",file));
}
}
catch (Exception ex)
{
Log.Error(ex.Message);
}
Но в приведенном выше коде, я не могу показаться, чтобы получить загрузку сделано потому, что я получаю следующее сообщение об ошибке:
No such host is known
И это возможно, потому что я использую значение Url моего хоста вместо IP? (Я провел тест с другим сервером FtP, использующим IP-адрес, и это тоже работает) Мне интересно, так ли это? Если да, есть ли способ позволить SftpClient
(Ssh.Net) обрабатывать адрес?
Параметр host может быть IP-адресом или именем хоста, которое может быть разрешено для IP-адреса. Возможно, это не URL-адрес, это совершенно другое. – arkascha
@arkascha does 'ftp.staging.blahblahblah.com/ContactImport' не похоже на имя? У FileZilla нет проблем с этим, но моя программа. – Disasterkid
Нет, это выглядит как строка, которая может быть интерпретирована как имя узла узла, путь к части. Это ни URL, ни имя хоста. Имя хоста будет 'ftp.staging.blahblahblah.com'. – arkascha