如何在ruby中编辑远程文本文件

时间:2014-10-09 05:54:36

标签: ruby-on-rails ruby file-io

我在一个服务器(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

我想知道这是最好的方法,还是有任何其他方式或任何红宝石宝石。

我已经构建了在本地计算机中添加/删除行的逻辑。

我希望这适用于远程文件。

我怎样才能做到这一点。

1 个答案:

答案 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/sshnet/scp宝石。