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(?\d{4})(?\d{2})(?\d{2}) (?\d{2})(?\d{2})(?\d{2}) (\.(?\d+))?/x =~ value raise FTPProtoError, "invalid time-val: #{value}" end usec = fractions.to_i * 10 ** (6 - fractions.to_s.size) Time.send(local ? :local : :utc, year, month, day, hour, min, sec, usec) }

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.

Show files where this class is defined (1 file)
Register or log in to add new notes.