NAME SiMH::FTP - FTPクライアント SYNOPSIS use SiMH::FTP; $ftp = SiMH::FTP->new(); $ftp->login($rhost,$userid,$passwd) or die($ftp->{error}); $ftp->cwd($rdir) or die($ftp->{error}); $ftp->put($lfile,$rfile,$type) or die($ftp->{error}); $ftp->get($rfile,$lfile,$type) or die($ftp->{error}); $ftp->list($rdir,$lfile) or die($ftp->{error}); $ftp->nlist($rdir,$lfile) or die($ftp->{error}); $size = $ftp->size($rfile,$type); defined($size) or die($ftp->{error}); $mdtm = $ftp->mdtm($rfile) or die($ftp->{error}); $ftp->rename($rfile1,$rfile2) or die($ftp->{error}); $ftp->delete($rfile) or die($ftp->{error}); $ftp->mkdir($rdir) or die($ftp->{error}); $ftp->rmdir($rdir) or die($ftp->{error}); $ftp->site($command) or die($ftp->{error}); $ftp->bye(); DESCRIPTION FTPクライアント機能を提供するクラス。 オブジェクトの生成は以下のコンストラクタで行う。 new() オブジェクトの生成初期化のみを行い、まだサーバ接続等は行わない。 以下のような名前付きパラメタ(NAME=>$valueの形式)を指定できる。 rhost : 接続先サーバのホスト名。 userid : 接続先サーバにログインするユーザID。 passwd : 接続先サーバにログインするパスワード。 timeout : 送受信処理のタイムアウト時間(単位:秒、既定値:60)。 bufsize : イメージ型データの処理単位(単位:Byte、既定値:16384)。 use_passive : Passive Mode を使用するか否か(Boolean、既定値:1)。 use_extcmds : NAT対応の拡張コマンドを使用するか否か(既定値:1)。 port_min : データコネクションで使用するポート番号最小値。 port_max : データコネクションで使用するポート番号最大値。 debug_trace : デバッグ用トレースの出力レベル(既定値:0)。 オブジェクトの状態は以下ようなのインスタンス変数で確認できる。 status : 現在の状態を以下の文字で表す。 'N':未ログイン、'R':転送可能、'E':エラー(転送不可) error : エラー発生時にその内容が文字列で格納される。 svreply : 直前にサーバーが返したメッセージが格納される。 オブジェクトは以下のようなメソッドを受け付ける。 login(《サーバホスト名》,《ユーザーID》,《パスワード》) 指定されたサーバに接続してログインする。 各パラメタとも new() の時点で指定していれば省略可能。 成功時には真(1)が、エラー時には偽(undef)が返される。 cwd(《リモートディレクトリ名》) サーバ側の作業ディレクトリを指定されたところに移動する。 成功時には真(1)が、エラー時には偽(undef)が返される。 put(《ローカルファイル名》,《リモートファイル名》,《タイプ》) 指定されたファイルをサーバへ転送する。 《タイプ》が 'A' ならASCII型、'I' ならIMAGE型として転送を行う。 《リモートファイル名》と《タイプ》は省略可能。それぞれ、《ローカル ファイル名》と同じ名前、'A' が指定されたものとして処理される。 成功時には真(1)が、エラー時には偽(undef)が返される。 get(《リモートファイル名》,《ローカルファイル名》,《タイプ》) 指定されたファイルをサーバから転送する。 《タイプ》が 'A' ならASCII型、'I' ならIMAGE型として転送を行う。 《ローカルファイル名》と《タイプ》は省略可能。それぞれ、《リモート ファイル名》と同じ名前、'A' が指定されたものとして処理される。 成功時には真(1)が、エラー時には偽(undef)が返される。 list(《リモートディレクトリ名》,《ローカルファイル名》) 指定されたディレクトリのファイル一覧を取得する。 《リモートディレクトリ名》が '-' で始まる場合、サーバ側の仕様で、 ファイル名でなくオプションだと解釈される場合があり、注意が必要。 結果は《ローカルファイル名》で指定されたファイルに保存される。 《ローカルファイル名》は省略可能、省略時には結果をファイルに保存 するのではなく、結果を単一の文字列にしてメソッドの返却値にする。 結果のフォーマットはサーバ依存なので、解析の際には注意が必要。 成功時には真(1)または結果文字列が、エラー時にはundefが返される。 nlist(《リモートディレクトリ名》,《ローカルファイル名》) 指定されたディレクトリのファイル名一覧を取得する。 《リモートディレクトリ名》が '-' で始まる場合、サーバ側の仕様で、 ファイル名でなくオプションだと解釈される場合があり、注意が必要。 結果は《ローカルファイル名》で指定されたファイルに保存される。 《ローカルファイル名》は省略可能、省略時には結果をファイルに保存 するのではなく、結果を単一の文字列にしてメソッドの返却値にする。 結果のフォーマットはファイル名の羅列(1ファイル/1行)になる。 成功時には真(1)または結果文字列が、エラー時にはundefが返される。 size(《リモートファイル名》,《タイプ》) 指定されたファイルの大きさ(単位:Byte)を取得する。 《タイプ》が 'A' ならASCII型、'I' ならIMAGE型としてカウントする。 《タイプ》は省略可能。'A' が指定されたものとして処理される。 成功時には大きさが、エラー時にはundefが返される。 mdtm(《リモートファイル名》) 指定されたファイルの更新日時を取得する。 結果は "YYYYMMDDHHMMSS.sss" の形式で返される(".sss" は省略可)。 タイムゾーンはUTC(GMT)が使用されるので日本時間とは9時間ずれている。 成功時には時刻文字列(14または18桁)が、エラー時にはundefが返される。 rename(《リモートファイル名1》,《リモートファイル名2》) 指定されたファイルをリネーム(1→2)する。 成功時には真(1)が、エラー時には偽(undef)が返される。 delete(《リモートファイル名》) 指定されたファイルを削除する。 成功時には真(1)が、エラー時には偽(undef)が返される。 mkdir(《リモートディレクトリ名》) 指定されたディレクトリを作成する。 成功時には真(1)が、エラー時には偽(undef)が返される。 rmdir(《リモートディレクトリ名》) 指定されたディレクトリを削除する。 成功時には真(1)が、エラー時には偽(undef)が返される。 site(《コマンド》) 指定されたコマンドをサーバ上で実行する。 指定できるコマンドは接続先サーバに依存する。 成功時には真(1)が、エラー時には偽(undef)が返される。 bye() サーバとの接続を閉じる。デストラクタではない。 未ログイン状態に戻るので、再度 login() することかできる。 SEE ALSO RFC 959 - FILE TRANSFER PROTOCOL (FTP) RFC 1123 - Requirements for Internet Hosts - Application and Support RFC 2428 - FTP Extensions for IPv6 and NATs Internet Draft - Extensions to FTP COPYRIGHT Copyright 2003, HIRANO Kiyoshi . このソフトウェアのソースコードおよびバイナリー形式の利用、複製、 再配布を、変更の有無に関わらず、以下の3つの条件の下で許可します。 1. ソースコードの再配布においては、上記著作権表示および許諾条件の 列挙を含めること。 2. バイナリー形式の再配布においては、上記著作権表示および許諾条件 の列挙を、配布物に附属した文書等に記載すること。 3. このソフトウェアの提供に際して、HIRANO Kiyoshi は一切の保証を しません。 理由のいかんを問わず、このソフトウェアの利用、複製、 再配布に伴い発生したいかなる損害も補償しません。