Pertanyaan Bagaimana cara menghapus file-file sementara secara otomatis di ruby-rails?


Aplikasi Rails saya harus memproses dan menghasilkan file PDF XFA dan mengirimnya ke pengguna / browser. Bekerja dengan baik. Tapi masalahnya adalah bahwa sebelum mengirim file ke pengguna, itu menciptakan 2 file dalam direktori tmp rel.

Jika 10 permintaan datang ke pdf_controller, jumlah file temp di direktori tmp akan berlipat ganda dan itu akan memakan ruang.

Setelah mencari di sekitar saya berpikir bahwa Penyapu akan datang untuk menyelamatkan. Namun tidak banyak pengetahuan tentang Sweeper.

Jadi, adakah yang bisa plz menyarankan jalan mana yang harus ditempuh?


5
2018-03-30 10:33


asal


Jawaban:


Tempfile akan menghapus file saat objek selesai.

Tempfile di Rdoc

Contoh:

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

Saya dapat memberikan contoh yang lebih baik jika Anda menempelkan kode ke pertanyaan Anda.


5
2018-03-30 15:01



Anda bisa menggunakan tugas cron, yang menghapus file setiap n menit, atau, Anda bisa memesan penghapusan dari pengontrol itu sendiri.


1
2018-03-30 11:45