トップ回答者
ftpwebrequestについて

質問
-
こんにちは。
ftpwebrequestについて質問があります。
APS.NETを使用して、ファイルをブラウザからFTPでアップロードする実装を検討しています。
.NETでftpwebrequestクラスを使用して、FTPでアップロードできるのは理解しているのですが、実際にデータがどのように流れていくのかがいまいち理解出来ません。
例えば、ASP.NETをホストしているサーバーをA、FTPサイトをホストしているサーバーをBとし、別々の筐体とします。
AのASP.NETからBに対して100MBのファイルをアップロードする場合、一旦Aに100ポストされた後、AからBにFTPでPUTされるようなイメージなのでしょうか?
実際の.NETクラスが実行されるのがAサーバーですので、どのような実装をしたとして、ブラウザとAサーバーとの間のデータのやりとりは発生してしまうのでは無いかと思います。
それとも、ブラウザから直接FTPでBサーバーにファイルをPUTしてくれるのでしょうか?
ちなみに、懸念しているのは、ASP.NETか稼働するAサーバーのIISへの負荷です。
比較的大きいサイズのファイルをFTPサイトにアップロードするので、ASP.NETサイトへの負荷を無くしたいと考えています。
どなたかご教授いただけるとたすかります。
An De
回答
-
ご想像の通りです。
ASP.NETで実装する以上、ASP.NETがデータを受け渡しするのは当然のことであり回避不能です。もしASP.NETの負荷を無くしたいのであればASP.NETを使わない(部分的に他の方法を使う)ことです。そしてそれはASP.NETフォーラムで質問してもどうしようもないことのように感じます。
例えばFTPではなくWebDAVを使えばブラウザーから制御しやすくなり、JavaScriptを使用してブラウザーからBサーバーへ直接アップロードできるかもしれません。
-
FileZilla のような FTP クライアントを使うのではなく、ブラウザを使う
のが要件であれば Web サーバーの負担は避けようがないです。どのような環境なのか書いてないので分かりませんが・・・
もし、Web サーバーとファイルサーバーが同じドメイン内にいるのであれば、
IIS のワーカープロセスのアカウントにファイルサーバーファイルシステム
へのアクセス権を与えて、FTP など使わずに直接書き込むようにしてはいか
がでしょう?Web サーバーの負担が大幅に減るということはないかもしれませんが、Web
サーバーで FtpWebRequest を使う分は減らせると思います。
すべての返信
-
ご想像の通りです。
ASP.NETで実装する以上、ASP.NETがデータを受け渡しするのは当然のことであり回避不能です。もしASP.NETの負荷を無くしたいのであればASP.NETを使わない(部分的に他の方法を使う)ことです。そしてそれはASP.NETフォーラムで質問してもどうしようもないことのように感じます。
例えばFTPではなくWebDAVを使えばブラウザーから制御しやすくなり、JavaScriptを使用してブラウザーからBサーバーへ直接アップロードできるかもしれません。
-
FileZilla のような FTP クライアントを使うのではなく、ブラウザを使う
のが要件であれば Web サーバーの負担は避けようがないです。どのような環境なのか書いてないので分かりませんが・・・
もし、Web サーバーとファイルサーバーが同じドメイン内にいるのであれば、
IIS のワーカープロセスのアカウントにファイルサーバーファイルシステム
へのアクセス権を与えて、FTP など使わずに直接書き込むようにしてはいか
がでしょう?Web サーバーの負担が大幅に減るということはないかもしれませんが、Web
サーバーで FtpWebRequest を使う分は減らせると思います。 -
こんにちは、An De さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
参考になる情報をいただいているように思われましたので、勝手ながら私の方で回答としてマークさせていただきました。
SurferOnWww さん、佐祐理 さん、情報ありがとうございます。いただいた情報の中で、解決に役立った投稿や、参考になる情報など有効な情報には回答としてマークすることをお願いしています。
今後、同じ問題でこのスレッドを参照される方にも、有効な情報を活用いただけるかと思いますので、ご協力よろしくお願いいたします。
_____________________
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海