Class Net::SFTP::Protocol::V04::Attributes
In: lib/net/sftp/protocol/04/attributes.rb
Parent: V01::Attributes

A class representing the attributes of a file or directory on the server. It may be used to specify new attributes, or to query existing attributes. This particular class is specific to versions 4 and 5 of the SFTP protocol.

To specify new attributes, just pass a hash as the argument to the constructor. The following keys are supported:

  • :type:: the type of the item (integer, one of the T_ constants)
  • :size:: the size of the item (integer)
  • :uid:: the user-id that owns the file (integer)
  • :gid:: the group-id that owns the file (integer)
  • :owner:: the name of the user that owns the file (string)
  • :group:: the name of the group that owns the file (string)
  • :permissions:: the permissions on the file (integer, e.g. 0755)
  • :atime:: the access time of the file (integer, seconds since epoch)
  • :atime_nseconds:: the nanosecond component of atime (integer)
  • :createtime:: the time at which the file was created (integer, seconds since epoch)
  • :createtime_nseconds:: the nanosecond component of createtime (integer)
  • :mtime:: the modification time of the file (integer, seconds since epoch)
  • :mtime_nseconds:: the nanosecond component of mtime (integer)
  • :acl:: an array of ACL entries for the item
  • :extended:: a hash of name/value pairs identifying extended info

Likewise, when the server sends an Attributes object, all of the above attributes are exposed as methods (though not all will be set with non-nil values from the server).

Methods

new  

Constants

F_ACCESSTIME = 0x00000008
F_CREATETIME = 0x00000010
F_MODIFYTIME = 0x00000020
F_ACL = 0x00000040
F_OWNERGROUP = 0x00000080
F_SUBSECOND_TIMES = 0x00000100
ACL = Struct.new(:type, :flag, :mask, :who)   A simple struct for representing a single entry in an Access Control List. (See Net::SFTP::Constants::ACE)

Attributes

acl  [RW]  The array of access control entries for this item.
atime_nseconds  [RW]  The nanosecond component of the access time.
createtime  [RW]  The creation time of the remote item, in seconds since the epoch.
createtime_nseconds  [RW]  The nanosecond component of the creation time.
group  [W]  The group of the item on the remote server, as a string.
mtime_nseconds  [RW]  The nanosecond component of the modification time.
owner  [W]  The owner of the item on the remote server, as a string.
type  [RW]  The type of the item on the remote server. Must be one of the T_* constants.

Public Class methods

Create a new Attributes instance with the given attributes. The following keys are supported:

  • :type:: the type of the item (integer, one of the T_ constants)
  • :size:: the size of the item (integer)
  • :uid:: the user-id that owns the file (integer)
  • :gid:: the group-id that owns the file (integer)
  • :owner:: the name of the user that owns the file (string)
  • :group:: the name of the group that owns the file (string)
  • :permissions:: the permissions on the file (integer, e.g. 0755)
  • :atime:: the access time of the file (integer, seconds since epoch)
  • :atime_nseconds:: the nanosecond component of atime (integer)
  • :createtime:: the time at which the file was created (integer, seconds since epoch)
  • :createtime_nseconds:: the nanosecond component of createtime (integer)
  • :mtime:: the modification time of the file (integer, seconds since epoch)
  • :mtime_nseconds:: the nanosecond component of mtime (integer)
  • :acl:: an array of ACL entries for the item
  • :extended:: a hash of name/value pairs identifying extended info

All of them default to nil if omitted, except for type, which defaults to T_REGULAR.

[Source]

     # File lib/net/sftp/protocol/04/attributes.rb, line 124
124:     def initialize(attributes={})
125:       super
126:       attributes[:type] ||= T_REGULAR
127:     end

[Validate]