在客户端上运行Ruby on Rails上的shell脚本

时间:2017-01-26 12:23:11

标签: ruby-on-rails ruby shell server client

我想在客户端上从我的Rails应用程序执行shell脚本。

在我的情况下,我想点击链接时在客户端PC上打开.odt文件。

就目前而言,我所能做的就是使用e.g. `libreoffice path_to_my_odt_file`在我的服务器上运行shell脚本。 在这种情况下,我在服务器上使用LivreOffice打开我的文件。

有没有办法从Rails在我的客户端上执行此代码?

如果我尝试按原样运行我的应用程序,当我调用调用我的脚本的操作时,该文件将在我的服务器上打开。

提前谢谢你。

1 个答案:

答案 0 :(得分:1)

正如评论中提到的,从http服务器在客户端上运行任意shell脚本将是一个巨大的安全漏洞。

只要您的Rails服务器提供了send_data的下载链接(例如dynamically_generated_odt_file),浏览器就会询问它是应该下载文件还是打开它。如果用户想要避免任何额外的互动,则可以tick

  

"从现在开始对#34;

这样的文件自动执行此操作

您可能需要通过添加

来指定MIME类型
Mime::Type.register "application/vnd.oasis.opendocument.text", :odt

config/initializers/mime_types.rb