2017-02-06 14 views
0

次のコードを使用して、ファイルをsFTPサーバーにアップロードしています。 FileZillaを使用してテストアップロードを行い、ファイルが正常にアップロードされました。 SftpClientがIPの代わりにURLをホストとして使用

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? (私はIPを使って別のFtPサーバーでテストを行いましたが、これも機能しているようです)そうなら、私は疑問に思っていますか?もしそうなら、SftpClientSsh.Net)のURLを処理させる方法はありますか?

+0

hostパラメータには、IPアドレスまたはIPアドレスに解決できるホスト名を使用できます。それは明らかにURLではないかもしれません、それはまったく違うものです。 – arkascha

+0

@arkaschaは 'ftp.staging.blahblahblah.com/ContactImport'を名前のように見せませんか? FileZillaは問題はないようですが、私のプログラムはそうです。 – Disasterkid

+0

いいえ、それは部分ホスト名、パーツパスとして解釈される文字列のようです。これはURLでもホスト名でもありません。ホスト名は 'ftp.staging.blahblahblah.com'です。 – arkascha

答えて

4

hostパラメータには、IPアドレスまたはIPアドレスに解決できるホスト名を使用できます。それはURLではないかもしれません、それは技術的な観点から全く異なるものです。

完全なアプリケーションの中には、ホスト名以外のものを受け入れるということはほとんどありません。その文字列を区切りトークンに分割し、ホスト名を解決するときに返されるIPアドレスに接続します。しかし、それはあなたがURLまたは任意の文字列への任意のネットワーク接続を開くことができるということを意味しません。 IPアドレスへの接続を開くことのみが可能です。

"プログラム"でsftp://ftp.example.com/ContactImportのようなURLを正常にテストした場合、コード内でその文字列をホストパラメータとして内部的に使用できるわけではありません。そのようなURLの一部であるホスト名を使用する必要があります。したがって、この場合はftp.example.comのみが正常にIPアドレスに解決されるためです。

+0

すごくありがとう。私はSFTPを送信する経験はあまりありません。私はFTPを送ったときにftp:// .... urlを使うので、SFTPは同じものになると思っていたので、混乱しました。私は間違っていた。あなたの答えはかなりお手伝いしました。 – Lostaunaum

+0

@Lostaunaum 'sftp'と' ftp'は2つの全く異なるものです。彼らは使用方法が似ているように見えますが、それはそれについてです。同じ基本プロトコルに基づいて、 'ftps'と' ftp'はもっと近いです。しかし、彼らは良い理由のためにURLで別々のプロトコルスキームを使っています... – arkascha

関連する問題