ちょっと前までマイブームだったJavaScript。JavaScriptを使って動的にHTMLを生成して、自分用にホームページ作って使っていたのですが・・・・・
どうにも重い!
遅い!!
なので、最近はJekyllを使って静的HTML作って、それをホームページスペースにあげるようにしています。
あげるHTMLスペースとしてwebcrow(無料)を使わせてもらっています。
結構使いやすくて、個人的に気に入っている点は、オプションによって広告が出る/出ないが選択できるところ。
そこにFTPで上げようとしたら、どうにもFTP接続できない・・・・・なんでだ?っていうのを調べた結果です。
アクセス方法や開発環境について
やり方はRubyのnet/ftpを使ってファイルをアップロードする方法を取っています。
参考にしたサイト: RubyにおけるFTP通信のサンプルコード - Qoosky
環境としてはみんな大好きCloud9を使っています。
503が返ってくる
そして肝心のエラーなんですが・・・・・ログを取り忘れましたorz
確かレスポンス的には503が返ってきて接続不可。
で、原因を追及すべくwebcrowのフォーラムとかを見てみましたところ、「503はユーザIDかパスワードが違っていた場合に返ってくるよ?」みたいなことが書いてあったのですがパスワードを再設定しなおしてもダメでなんでだろうとサポートマニュアルも見てみたら・・・・
決定的な内容を発見!!
■設定がうまくいかない時は
ウェブクロウ(無料プラン)では、サーバーへの不正なアクセスを防止するため、国外ネットワークからの接続を遮断しています。
プロバイダや接続する環境によっては、国外ネットワークからの接続と誤認され、FTP接続に失敗する可能性があります。国内からのFTP接続をお試しの上、それでも接続に失敗する場合は、メールサポートまでお問い合わせください。
国外ネットワークからの接続は遮断とのこと!そうなんか。
Cloud9環境となると海外だろうし、もしかしてこれか?と思ってIPアドレスを調べてみました。
IPアドレスの国を調べるのにはこちらを使用。
案の定「アメリカ合衆国」になっていました。
原因はこれですな。
結果
ftpできない原因としては"IPアドレス規制をされていた"という結果でした。
Passiveモードにする必要があるだとか、そういうプログラムのほうでのオプションとかの設定が足りないのかな?とか迷っていましたが予想外の結果。
webcrowのポリシーとしては、普通のPCからを想定しているからなんだろうな。その場合だったらほとんど国内IPからのアクセスになるだろうし。当然といえば当然なんだけど・・・・これは困った。
EC2もTokyoリージョンを使っていてもIPがUSになっていた影響でやりたいことができなかったりとIPの国に関しては最近よくはまります。
こういうこともあるんだ~という参考になれば幸いです。
webcrow、なかなか使いやすいですよ。