2009-03-30 5 views
5

L'app My Rails deve elaborare e generare file PDF XFA e inviarli all'utente/browser. È funzionante. Ma il problema è che prima di inviare il file all'utente, crea 2 file nella directory tmp delle guide.Come eliminare automaticamente i file temporanei in ruby-rails?

Se 10 richieste arrivano al pdf_controller, il numero dei file temporanei nella directory tmp raddoppierà e occuperà lo spazio.

Dopo aver cercato in giro ho pensato che Sweeper sarebbe venuto in soccorso. Ma non molta conoscenza di Sweeper.

Quindi, qualcuno può suggerire quale strada da percorrere?

risposta

1

È possibile utilizzare un'attività cron, che elimina i file ogni n minuti o, è possibile ordinare la cancellazione dal controller stesso.

+1

Il cron potrebbe non essere la soluzione migliore. Quando l'utente viene mostrato con il file PDF creato da tempfile e se non invia il modulo PDF per un po 'di tempo e se quel cron viene licenziato ed elimina il file temporaneo, e successivamente quando l'utente invia il modulo PDF, il sistema si allenta/non valido. – Autodidact

5

Tempfile cancellerà i file quando l'oggetto è finalizzato.

Tempfile on Rdoc

Esempio:

def get_pdf 
    model = Model.find(params[:id]) 
    file = Tempfile.new 
    model.to_pdf(file) 
    send_file file.path, ... 
end 

posso fornire un esempio migliore se si incolla il codice in tua domanda.

+0

Ciao Scott! Penso che Tempfile potrebbe essere la soluzione. Ma sono ancora confuso su come usare questo compito per fare quello che ho menzionato sopra. Un esempio sarà molto meglio. Grazie – Autodidact