Ruby on rails 如何在ruby中编辑远程文本文件
我在一台服务器(ubuntu)中有一个文本文件,如何在ror应用程序中远程编辑它 我认为应该通过以下方式完成: 将远程文件下载到本地tmp文件夹 使用以下命令编辑文件:Ruby on rails 如何在ruby中编辑远程文本文件,ruby-on-rails,ruby,file-io,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.s
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
我想知道这是最好的方法,还是有其他方法或任何红宝石
我已经构建了在本地机器中添加/删除行的逻辑
我希望这对远程文件有效
我怎样才能做到这一点 我觉得你的方法不错。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
gems。为什么不在ssh会话本身中执行写文件操作?我可以在web中维护ssh会话吗?实际上,我将下载该文件并在视图中显示,然后用户可以编辑其内容,当他单击“保存”时,我将其保存在本地,然后将该文件上载到远程服务器。在这种情况下是否可以维护ssh会话??我这么问是因为我不知道。你说的“网络”是什么意思?它应该在控制器/模型中,对吗?是的。它在控制器中。我以为您指的是ruby脚本文件。为了显示和编辑,您必须创建单独的ssh连接。