使用 NET::SCP gem in Ruby 将文件上传到服务器并删除原始文件
Upload file to server and delete original using NET::SCP gem in Ruby
我正在使用 net/scp
gem 将文件从我的机器上传到远程 Linux 服务器。
require 'net/ssh'
require 'net/scp'
Net::SCP.upload!(10.125.0.0,
user,
local_path,
remote_dir,
:ssh => { :password => psw,
:key_data => keys})
这非常有效,但是我希望能够 'move' 文件而不是有效地复制文件。
是否有一些scp
参数会删除原始文件?
Net::SCP 没有任何这样的参数:
https://github.com/net-ssh/net-scp/blob/master/lib/net/scp.rb#L259-L267
由于复制和移动之间的唯一区别只是源的最终删除,因此您应该在 upload!
之后手动执行此操作。
File.delete(local_path)
您很可能希望确保 Net::SCP 已经完成,然后再这样做:
require 'net/ssh'
require 'net/scp'
channel = Net::SCP.upload!(10.125.0.0,
user,
local_path,
remote_dir,
:ssh => { :password => psw,
:key_data => keys})
channel.wait
File.delete(local_path)
我正在使用 net/scp
gem 将文件从我的机器上传到远程 Linux 服务器。
require 'net/ssh'
require 'net/scp'
Net::SCP.upload!(10.125.0.0,
user,
local_path,
remote_dir,
:ssh => { :password => psw,
:key_data => keys})
这非常有效,但是我希望能够 'move' 文件而不是有效地复制文件。
是否有一些scp
参数会删除原始文件?
Net::SCP 没有任何这样的参数:
https://github.com/net-ssh/net-scp/blob/master/lib/net/scp.rb#L259-L267
由于复制和移动之间的唯一区别只是源的最终删除,因此您应该在 upload!
之后手动执行此操作。
File.delete(local_path)
您很可能希望确保 Net::SCP 已经完成,然后再这样做:
require 'net/ssh'
require 'net/scp'
channel = Net::SCP.upload!(10.125.0.0,
user,
local_path,
remote_dir,
:ssh => { :password => psw,
:key_data => keys})
channel.wait
File.delete(local_path)