Class: Net::SFTP::Protocol::V05::Base

### Home Classes Methods

### In Files

- lib/net/sftp/protocol/05/base.rb

### Parent

Net::SFTP::Protocol::V04::Base

### Methods

- #open
- #rename
- #version

### Files

- README.rdoc

### Class/Module Index

Quicksearch

- Net
- Net::SFTP
- Net::SFTP::Constants
- Net::SFTP::Constants::ACE
- Net::SFTP::Constants::ACE::Flag
- Net::SFTP::Constants::ACE::Mask
- Net::SFTP::Constants::ACE::Type
- Net::SFTP::Constants::LockTypes
- Net::SFTP::Constants::OpenFlags
- Net::SFTP::Constants::OpenFlags::FV1
- Net::SFTP::Constants::OpenFlags::FV5
- Net::SFTP::Constants::OpenFlags::FV6
- Net::SFTP::Constants::PacketTypes
- Net::SFTP::Constants::RenameFlags
- Net::SFTP::Constants::StatusCodes
- Net::SFTP::Exception
- Net::SFTP::Operations
- Net::SFTP::Operations::Dir
- Net::SFTP::Operations::Download
- Net::SFTP::Operations::File
- Net::SFTP::Operations::FileFactory
- Net::SFTP::Operations::Upload
- Net::SFTP::Packet
- Net::SFTP::Protocol
- Net::SFTP::Protocol::Base
- Net::SFTP::Protocol::V01
- Net::SFTP::Protocol::V01::Attributes
- Net::SFTP::Protocol::V01::Base
- Net::SFTP::Protocol::V01::Name
- Net::SFTP::Protocol::V02
- Net::SFTP::Protocol::V02::Base
- Net::SFTP::Protocol::V03
- Net::SFTP::Protocol::V03::Base
- Net::SFTP::Protocol::V04
- Net::SFTP::Protocol::V04::Attributes
- Net::SFTP::Protocol::V04::Base
- Net::SFTP::Protocol::V04::Name
- Net::SFTP::Protocol::V05
- Net::SFTP::Protocol::V05::Base
- Net::SFTP::Protocol::V06
- Net::SFTP::Protocol::V06::Attributes
- Net::SFTP::Protocol::V06::Base
- Net::SFTP::Request
- Net::SFTP::Response
- Net::SFTP::Session
- Net::SFTP::StatusException
- Net::SFTP::Version
- Net::SSH
- Net::SSH::Connection
- Net::SSH::Connection::Session

No matching classes.

# Net::SFTP::Protocol::V05::Base

Wraps the low-level SFTP calls for version 5 of the SFTP protocol.

None of these protocol methods block--all of them return immediately, requiring the SSH event loop to be run while the server response is pending.

You will almost certainly never need to use this driver directly. Please see Net::SFTP::Session for the recommended interface.

### Public Instance Methods

open(path, flags, options) click to toggle source

Sends a FXP_OPEN packet to the server and returns the packet identifier. The `flags` parameter is either an integer (in which case it must be a combination of the IO constants) or a string (in which case it must be one of the mode strings that IO::open accepts). The `options` parameter is a hash that is used to construct a new Attribute object, to pass as part of the FXP_OPEN request.

    # File lib/net/sftp/protocol/05/base.rb, line 35
    def open(path, flags, options)
      flags = normalize_open_flags(flags)

      sftp_flags, desired_access = if flags & (IO::WRONLY | IO::RDWR) != 0
          open = if flags & (IO::CREAT | IO::EXCL) == (IO::CREAT | IO::EXCL)
            FV5::CREATE_NEW
          elsif flags & (IO::CREAT | IO::TRUNC) == (IO::CREAT | IO::TRUNC)
            FV5::CREATE_TRUNCATE
          elsif flags & IO::CREAT == IO::CREAT
            FV5::OPEN_OR_CREATE
          else
            FV5::OPEN_EXISTING
          end
          access = ACE::Mask::WRITE_DATA | ACE::Mask::WRITE_ATTRIBUTES
          access |= ACE::Mask::READ_DATA | ACE::Mask::READ_ATTRIBUTES if (flags & IO::RDWR) == IO::RDWR
          if flags & IO::APPEND == IO::APPEND
            open |= FV5::APPEND_DATA
            access |= ACE::Mask::APPEND_DATA
          end
          [open, access]
        else
          [FV5::OPEN_EXISTING, ACE::Mask::READ_DATA | ACE::Mask::READ_ATTRIBUTES]
        end

      attributes = attribute_factory.new(options)

      send_request(FXP_OPEN, :string, path, :long, desired_access, :long, sftp_flags, :raw, attributes.to_s)
    end

rename(name, new_name, flags=nil) click to toggle source

Sends a FXP_RENAME packet to the server to request that the file or directory with the given `name` (must be a full path) be changed to `new_name` (which must also be a path). The `flags` parameter must be either `nil` or 0 (the default), or some combination of the Net::SFTP::Constants::RenameFlags constants.

    # File lib/net/sftp/protocol/05/base.rb, line 25
    def rename(name, new_name, flags=nil)
      send_request(FXP_RENAME, :string, name, :string, new_name, :long, flags || 0)
    end

version() click to toggle source

Returns the protocol version implemented by this driver. (5, in this case)

    # File lib/net/sftp/protocol/05/base.rb, line 16
    def version
      5
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.