Class

URI::FTP

Inheritance
< Object
Included Modules
OpenURI::OpenRead

FTP URI syntax is defined by RFC1738 section 3.2.

Constants

Name   Description
COMPONENT = [ :scheme, :userinfo, :host, :port, :path, :typecode
DEFAULT_PORT = 21
TYPECODE = ['a', 'i', 'd'].freeze Typecode is "a", "i" or "d".
  • "a" indicates a text file (the FTP command was ASCII)
  • "i" indicates a binary file (FTP command IMAGE)
  • "d" indicates the contents of a directory should be displayed
TYPECODE_PREFIX = ';type='.freeze

Attributes

Name Visibility R/W Description
typecode public R

Methods

Class

Visibility Signature
public build (args)
public new (*arg)
public new2 (user, password, host, port, path, typecode = nil, arg_check = true)

Instance

Visibility Signature
public path ()
public to_s ()
public typecode= (typecode)
protected set_typecode (v)

Class Method Detail

build(args)

Description

Creates a new URI::FTP object from components, with syntax checking.

The components accepted are userinfo, host, port, path and typecode.

The components should be provided either as an Array, or as a Hash with keys formed by preceding the component names with a colon.

If an Array is used, the components must be passed in the order [userinfo, host, port, path, typecode]

If the path supplied is absolute, it will be escaped in order to make it absolute in the URI. Examples:

    require 'uri'

    uri = URI::FTP.build(['user:password', 'ftp.example.com', nil,
      '/path/file.> zip', 'i'])
    puts uri.to_s  ->  ftp://user:password@ftp.example.com/%2Fpath/file.zip;type=a

    uri2 = URI::FTP.build({:host => 'ftp.example.com',
      :path => 'ruby/src'})
    puts uri2.to_s  ->  ftp://ftp.example.com/ruby/src

new(*arg)

Description

Creates a new URI::FTP object from generic URL components with no syntax checking.

Unlike build(), this method does not escape the path component as required by RFC1738; instead it is treated as per RFC2396.

Arguments are scheme, userinfo, host, port, registry, path, opaque, query and fragment, in that order.

new2(user, password, host, port, path, typecode = nil, arg_check = true)

Instance Method Detail

path()

Returns the path from an FTP URI.

RFC 1738 specifically states that the path for an FTP URI does not include the / which separates the URI path from the URI host. Example:

    ftp://ftp.example.com/pub/ruby

The above URI indicates that the client should connect to ftp.example.com then cd pub/ruby from the initial login directory.

If you want to cd to an absolute directory, you must include an escaped / (%2F) in the path. Example:

    ftp://ftp.example.com/%2Fpub/ruby

This method will then return "/pub/ruby"

to_s()

typecode=(typecode)

set_typecode(v)