べるべる研究日誌

なんでもやる系エンジニアの日々

FTPサーバーのチェック

FTPサーバーでRESTコマンドが使えないと問い合わせ。マルチスレッドのダウンローダーで「502 Command REST not allowed by policy.」とか出ているとのこと。いろいろ調べるが、OSX ServerのxftpdでRESTを制限する設定は無いようだ。502エラーはFirewallの設定によって出るとの情報はあるがハッキリしない。

「まー暇があったらコマンド送信するクライアント作ってテストするよ」と書いてメール送信してから気がついた。そうだRubyがあるではないか。

require "net/ftp"
ftp = Net::FTP.new(server,user,pass)
p ftp.welcome
p ftp.sendcmd("TYPE I")
p ftp.sendcmd("PASV")
p ftp.sendcmd("REST 633699")
ftp.quit

さくっと作って実行

"230----------------------------------\n230-**** FTP Server\n230----------------------------------\n230-\n230 User **** logged in.\n"
"200 Type set to I.\n"
"227 Entering Passive Mode (125,206,202,26,116,24)\n"
"350 Restarting at 633699. Send STORE or RETRIEVE to initiate transfer.\n"

よっしゃ。RESTコマンドは正常に受付できているのでやっぱりFirewallのせいなのかな...。


それにしてもnet/httpとかに比べてサンプルが無く、説明も簡単でちょっと可哀想なnet/ftpである。気づいてしまったおいらっが書くべきか?(汗

Ruby Reference Manual - るりま