我在一个服务器(ubuntu)中有一个文本文件,如何在ror应用程序中远程编辑它。
我认为应该通过以下方式完成:
将远程文件下载到本地tmp文件夹。
使用
编辑文件 File.open(params[:file_path], 'a') { |f| f.write("#{params[:token]}\n") }
然后将其上传到远程服务器
Net::SSH.start(remote_server_ip, "root", {:password => "secret"}) do |ssh|
ssh.scp.upload! localfile_path, remote_file_path
end
我想知道这是最好的方法,还是有任何其他方式或任何红宝石宝石。
我已经构建了在本地计算机中添加/删除行的逻辑。
我希望这适用于远程文件。
我怎样才能做到这一点。
答案 0 :(得分:0)
您的方法对我来说听起来不错。 net / scp gem使得重用现有的ssh连接来进行下载上传变得很容易,如下所示:
require 'net-ssh'
require 'net-scp'
ssh = Net::SSH.start('my-server', 'my-user')
ssh.scp.download!('/remote/path/to/file', '/local/destination/folder')
(do stuff with file)
ssh.scp.upload!('/local/modified/file', '/remote/path/to/file')
请注意,您需要同时安装net/ssh
和net/scp
宝石。