esponendo file da un servizio attraverso un'applicazione rails
-
06-07-2019 - |
Domanda
Ho un'applicazione di rotaie che genera file di Office aperti e ho un servizio in un'altra posizione che converte questi file di Office aperti in file di Microsoft Office. Vorrei eseguire un'azione del controller che invierà il file open office al convertitore, quindi servirà all'utente il file Microsoft Office restituito. come potrei farlo?
-C
Soluzione
Scopri
send_file @file.path, :x_sendfile => true
at apidock .
Ciò ti consente di servire i file dal filesystem con l'autenticazione delle rotaie, ma servire il file effettivo passerà attraverso il tuo modulo apache / lighttd e non vincolerà un processo di rotaie.
Per quanto riguarda il recupero del documento MS Office, probabilmente vorrai che il servizio richiami un'azione diversa, che dice all'app della tua rotaia di scaricare il nuovo documento.
class MyController < ApplicationController
def get_new_document
unless params[:file_path].nil? or params[:server_uri].nil?
@new_document = Net::Http.get(params[:server_uri], params[:file_path])
@new_document.save # save to filesystem
end
end
end
Altri suggerimenti
x_sendfile non è disponibile se usi nginx, se lo sei puoi usare X-Accel-Redirect. Puoi trovare maggiori informazioni qui:
http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/