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