Class Net::SFTP::Protocol::V05::Base
In: lib/net/sftp/protocol/05/base.rb
Parent: V04::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.

Methods

open   rename   version  

Public Instance methods

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.

[Source]

    # File lib/net/sftp/protocol/05/base.rb, line 35
35:     def open(path, flags, options)
36:       flags = normalize_open_flags(flags)
37: 
38:       sftp_flags, desired_access = if flags & (IO::WRONLY | IO::RDWR) != 0
39:           open = if flags & (IO::CREAT | IO::EXCL) == (IO::CREAT | IO::EXCL)
40:             FV5::CREATE_NEW
41:           elsif flags & (IO::CREAT | IO::TRUNC) == (IO::CREAT | IO::TRUNC)
42:             FV5::CREATE_TRUNCATE
43:           elsif flags & IO::CREAT == IO::CREAT
44:             FV5::OPEN_OR_CREATE
45:           else
46:             FV5::OPEN_EXISTING
47:           end
48:           access = ACE::Mask::WRITE_DATA | ACE::Mask::WRITE_ATTRIBUTES
49:           access |= ACE::Mask::READ_DATA | ACE::Mask::READ_ATTRIBUTES if (flags & IO::RDWR) == IO::RDWR
50:           if flags & IO::APPEND == IO::APPEND
51:             open |= FV5::APPEND_DATA
52:             access |= ACE::Mask::APPEND_DATA
53:           end
54:           [open, access]
55:         else
56:           [FV5::OPEN_EXISTING, ACE::Mask::READ_DATA | ACE::Mask::READ_ATTRIBUTES]
57:         end
58: 
59:       attributes = attribute_factory.new(options)
60: 
61:       send_request(FXP_OPEN, :string, path, :long, desired_access, :long, sftp_flags, :raw, attributes.to_s)
62:     end

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.

[Source]

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

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

[Source]

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

[Validate]