我正在运行一个sinatra网络应用程序,它从用户那里获取文件(上传)。然后它通过scp将文件传输到服务器。我可以从params Hash中获取文件名并将其设置为环境变量并将其传递给scp命令。下面是我的代码片段。
ENV[file] = params['arne_site_file'][:filename]
transfer = `scp -i /opt/zabbix-proxy/etc/.ssh/id_rsa $file zabbix@X.X.X.X:/home/zabbix/ARNE_5216_files`
Params Hash是 -
{
"arne_site_file" => {
:filename => "ARNE_SITE__BB5216_L16B_936441_HWY_54_A.xml"
},
"submit" => "Validate File"
}
答案 0 :(得分:1)
找到解决方案。事实证明我缺少引号。 ENV [' file'] = params [' arne_site_file'] [:filename]。这解决了这个问题。很高兴知道可以通过Ruby设置env变量来访问其他bash脚本。