This class implements the File Transfer Protocol. If you have used a command-line FTP program, and are familiar with the commands, you will be able to use this class easily. Some extra features are included to take advantage of Ruby’s style and strengths.
Example
require 'net/ftp'
Example 1
ftp = Net::FTP.new('example.com') ftp.login files = ftp.chdir('pub/lang/ruby/contrib') files = ftp.list('n*') ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024) ftp.close
Example 2
Net::FTP.open('example.com') do |ftp| ftp.login files = ftp.chdir('pub/lang/ruby/contrib') files = ftp.list('n*') ftp.getbinaryfile('nif.rb-0.91.gz', 'nif.gz', 1024) end
Major Methods
The following are the methods most likely to be useful to users:
Constants
FACT_PARSERS = Hash.new(CASE_DEPENDENT_PARSER)
TIME_PARSER = ->(value, local = false) {
unless /\A(?
OCTAL_PARSER = ->(value) { value.to_i(8) }
DECIMAL_PARSER = ->(value) { value.to_i }
CASE_INDEPENDENT_PARSER = ->(value) { value.downcase }
CASE_DEPENDENT_PARSER = ->(value) { value }
Attributes
[R] | last_response |
The server’s last response. |
[R] | lastresp |
The server’s last response code. |
[R] | last_response_code |
The server’s last response code. |
[R] | welcome |
The server’s welcome message. |
[R] | read_timeout |
Number of seconds to wait for one block to be read (via one read(2) call). Any number may be used, including Floats for fractional seconds. If the FTP object cannot read data in this many seconds, it raises a Timeout::Error exception. The default value is 60 seconds. |
[RW] | ssl_handshake_timeout |
Number of seconds to wait for the TLS handshake. Any number may be used, including Floats for fractional seconds. If the FTP object cannot complete the TLS handshake in this many seconds, it raises a Net::OpenTimeout exception. The default value is nil. If ssl_handshake_timeout is nil, open_timeout is used instead. |
[RW] | open_timeout |
Number of seconds to wait for the connection to open. Any number may be used, including Floats for fractional seconds. If the FTP object cannot open a connection in this many seconds, it raises a Net::OpenTimeout exception. The default value is nil. |
[RW] | resume |
Sets or retrieves the resume status, which decides whether incomplete transfers are resumed or restarted. Default: false. |
[RW] | debug_mode |
When true, all traffic to and from the server is written to +$stdout+. Default: false. |
[RW] | passive |
When true, the connection is in passive mode. Default: true. |
[R] | binary |
When true, transfers are performed in binary mode. Default: true. |