class DRbQS::Transfer::Client::SFTP

Transfer files to directory on DRbQS server over sftp. Note that after we transfer files we delete the original files.

Attributes

directory[R]
host[R]
user[R]

Public Class Methods

new(user, host, directory) click to toggle source
Calls superclass method DRbQS::Transfer::Client::Base::new
# File lib/drbqs/utility/transfer/transfer_client_connect.rb, line 28
def initialize(user, host, directory)
  super(directory)
  @user = user
  @host = host
end

Public Instance Methods

download(files) click to toggle source
# File lib/drbqs/utility/transfer/transfer_client_connect.rb, line 51
def download(files)
  moved = []
  start_sftp do |sftp|
    files.each do |path|
      dir, downloaded_path = directory_for_download(path)
      sftp.download(path, dir, :recursive => true)
      moved << downloaded_path
    end
  end
  moved
rescue => err
  raise err.class, "user=#{@user}, host=#{@host}, directory=#{@directory}; #{err.to_s}", err.backtrace 
end
transfer(files) click to toggle source

Transfer and delete files.

# File lib/drbqs/utility/transfer/transfer_client_connect.rb, line 40
def transfer(files)
  start_sftp do |sftp|
    files.each do |path|
      sftp.upload(path, upload_name(path))
      FileUtils.rm_r(path)
    end
  end
rescue => err
  raise err.class, "user=#{@user}, host=#{@host}, directory=#{@directory}; #{err.to_s}", err.backtrace 
end

Private Instance Methods

start_sftp(&block) click to toggle source
# File lib/drbqs/utility/transfer/transfer_client_connect.rb, line 34
def start_sftp(&block)
  Net::SFTP.start(@host, @user, &block)
end