direct_open (URI::SFTP)

    # File lib/uri/open-sftp.rb, line 29
        def direct_open( buf, open_options )
          Net::SFTP.start( host, port, user, password, options ) do |sftp|
            if open_options[:content_length_proc]
              open_options[:content_length_proc].call( sftp.lstat( path ).size )
            end

            body = nil
            sftp.open_handle( path ) do |handle|
              body = sftp.read( handle,
                        :chunk_size => open_options[:chunk_size],
                        :progress_callback => open_options[:progress_proc] )
            end

            if body.nil?
              raise Net::SSH::SFTP::SFTPError, sftp.status[:message]
            end

            buf << body
            buf.io.rewind
          end
        end