es ja en zh ja ja ja ja ja ja ja ja ja ja ja ja zh ja en ja en ja de ja ja de ja en ja en ja et ja de ja de ja
基本的には unix の ftp コマンドのような command-line interface の FTP クライアントを使ったことのある人にとってわかりやすいインターフェースになっています。より「Ruby 的」であるインターフェースも用意しています。
Net::FTP#get、Net::FTP#put は Net::FTP#binary の値に従ってテキストモードとバイナリモードの一方を選びます。また、 Net::FTP#getbinaryfile、Net::FTP#putbinaryfile は Net::FTP#binary の値によらずバイナリモードで、 Net::FTP#gettextfile、Net::FTP#puttextfile は Net::FTP#binary の値によらずテキストモードでデータ転送が行われます。
パッシブモードとアクティブモード
FTP はファイル転送やディレクトリ情報取得のためのデータ転送用の TCP コネクションを、サーバとの制御コマンドをやりとりするためのコネクションとは別に作成します。
このデータ転送用コネクションを作成する際に、アクティブモードではサーバ側からクライアント側へコネクションを作り、パッシブモードではクライアント側からサーバ側へコネクションを作ります。
そのため、アクティブモードではサーバ-クライアント間にファイアーウォールや NAT がある場合にはうまく接続できない場合があります。この時にはパッシブモードを利用してください。
アクティブモードがデフォルトです。
require 'net/ftp' ftp = Net::FTP.new('ftp.example.org') ftp.login ftp.passive = true ftp.chdir('pub/ruby') files = ftp.list('ruby*') ftp.getbinaryfile('ruby-1.9.1-p243.tar.bz2', 'ruby.bz2', 1024) ftp.close
require 'net/ftp' Net::FTP.open('ftp.example.org') do |ftp| ftp.login ftp.passive = true ftp.chdir('pub/ruby') files = ftp.list('*.bz2') ftp.getbinaryfile('ruby-1.9.1-p243.tar.bz2', 'ruby.bz2', 1024) end
FTP を実装したクラスです。
Net::FTPError
net/ftp ライブラリ関連のエラー全般を表す例外クラスです。
Net::FTPConnectionError
コネクションを確立する前に通信しようとした場合に発生する例外のクラスです。
Net::FTPPermError
FTP の応答コード 5yz (Permanent Negative Completion reply) を表す例外クラスです。
Net::FTPProtoError
サーバの応答が FTP のプロトコルに沿っていない場合に発生する例外のクラスです。
Net::FTPReplyError
FTPの応答が 1yz や 3yz であり、それが想定外であることを表わす例外クラスです。
Net::FTPTempError
FTP の応答コード 4yz (Transient Negative Completion reply) を表す例外クラスです。