Methods
Included Modules
- OpenURI::OpenRead
Constants
DEFAULT_PORT | = | 22 |
COMPONENT | = | [ :scheme, :userinfo, :host, :port, :path, :query |
Attributes
[R] | options |
Public Class methods
[ show source ]
# File lib/uri/sftp.rb, line 25 25: def initialize( *args ) 26: super( *args ) 27: 28: @options = Hash.new 29: ( query || "" ).split( /&/ ).each do |pair| 30: name, value = pair.split( /=/ ) 31: opt_name = name.intern 32: values = value.split( /,/ ).map { |v| v.to_i.to_s == v ? v.to_i : v } 33: values = values.first if values.length == 1 34: options[ opt_name ] = values 35: end 36: end
[ show source ]
# File lib/uri/sftp.rb, line 17 17: def self.new2( user, password, host, port, path, query ) 18: new( 'sftp', 19: [ user, password ], 20: host, port, 21: nil, path, 22: nil, query ) 23: end
Public Instance methods
[ show source ]
# File lib/uri/open-sftp.rb, line 29 29: def direct_open( buf, open_options ) 30: Net::SFTP.start( host, port, user, password, options ) do |sftp| 31: if open_options[:content_length_proc] 32: open_options[:content_length_proc].call( sftp.lstat( path ).size ) 33: end 34: 35: body = nil 36: sftp.open_handle( path ) do |handle| 37: body = sftp.read( handle, 38: :chunk_size => open_options[:chunk_size], 39: :progress_callback => open_options[:progress_proc] ) 40: end 41: 42: if body.nil? 43: raise Net::SSH::SFTP::SFTPError, sftp.status[:message] 44: end 45: 46: buf << body 47: buf.io.rewind 48: end 49: end