2017-01-26 5 views
0

Ich möchte ein Shell-Skript aus meiner Rails-App auf dem Client ausführen.Ausführen des Shell-Skripts Ruby on Rails auf dem Client

In meinem Fall möchte ich eine .odt Datei auf dem Client-PC öffnen, wenn er auf einen Link klickt.

Im Moment kann ich nur Shell-Skript auf meinem Server mit e.g. `libreoffice path_to_my_odt_file` ausführen. In diesem Fall öffne ich meine Datei mit LivreOffice auf dem Server.

Gibt es eine Möglichkeit, diesen Code auf meinem Client von Rails auszuführen?

Wenn ich versuche, meine App so auszuführen, wie sie ist, wenn ich die Aktion aufrufen, die mein Skript aufruft, wird die Datei auf meinem Server geöffnet.

Vielen Dank im Voraus.

+2

Ich glaube nicht, dass Sie willkürliche Befehle auf dem Client ausführen können, wenn Sie auf einen Link klicken, das wäre ein großes Sicherheitsrisiko. Wenn Sie die .odt - Datei an den Client senden (d. H. Der Browser lädt die Datei herunter), können Benutzer die Datei ziemlich einfach von dort aus öffnen. – jfornoff

+1

Ja, es ist unmöglich, es sei denn, Sie haben den Client heruntergeladen und ein Shell-Skript ausgeführt. – thesecretmaster

+0

Ich stimme zu, dass es eine große Sicherheitslücke wäre ... Ich erstelle diese .odt-Datei in meiner App und möchte sie auf dem Client anzeigen (da ich diese Datei im Browser nicht öffnen kann). Ich dachte daran, den Client die Datei herunterladen zu lassen, aber das würde einige Schmerzen verursachen ... Ich möchte es so automatisch wie möglich machen, in dem Sinne, dass es keine fetter Benutzerinteraktion erfordern würde. Irgendeine Idee, wie man das macht? – ThalesMiguel

Antwort

1

Wie in den Kommentaren erwähnt, wäre das Ausführen beliebiger Shell-Skripts auf dem Client vom http-Server eine große Sicherheitslücke.

Solange Ihr Rails-Server einen Download-Link mit send_data bietet (z. B. dynamically_generated_odt_file), fragt der Browser, ob er die Datei herunterladen oder öffnen soll. Wenn der Benutzer keine zusätzliche Interaktion vermeiden will, gibt es die Möglichkeit zu tick:

„diese ab sofort für Dateien wie dies automatisch auf“

Sie können den MIME-Typ angeben müssen, von Hinzufügen

Mime::Type.register "application/vnd.oasis.opendocument.text", :odt 

zu config/initializers/mime_types.rb.

+0

Ausgezeichnete Antwort. Vielen Dank. – ThalesMiguel