2009-03-30 35 views
5

Ứng dụng Rails của tôi phải xử lý và tạo tệp PDF XFA và gửi cho người dùng/trình duyệt. Làm việc tốt. Nhưng vấn đề là trước khi gửi tệp cho người dùng, nó tạo ra 2 tệp trong thư mục tmp rails.Làm thế nào để xóa các tập tin tạm thời tự động trong ruby-ray?

Nếu 10 yêu cầu đến pdf_controller, số lượng tệp tạm thời trong thư mục tmp sẽ tăng gấp đôi và nó sẽ chiếm không gian.

Sau khi tìm kiếm xung quanh tôi nghĩ rằng Sweeper sẽ đến để giải cứu. Nhưng không có nhiều kiến ​​thức về Sweeper.

Vì vậy, bất kỳ ai có thể đề xuất đường đi nào?

Trả lời

1

Bạn có thể sử dụng tác vụ cron, xóa các tập tin đó sau mỗi n phút, hoặc bạn có thể tự xóa lệnh khỏi chính bộ điều khiển.

+1

Cron có thể không phải là giải pháp tốt. Khi người dùng được hiển thị với tệp PDF được tạo bằng tempfile và nếu anh ấy không gửi biểu mẫu PDF đôi khi và nếu cron đó bị sa thải và xóa tệp tạm thời, và sau đó khi người dùng gửi biểu mẫu PDF, hệ thống sẽ bị mất/không hợp lệ. – Autodidact

5

Tempfile sẽ xóa tệp khi đối tượng được hoàn thành.

Tempfile on Rdoc

Ví dụ:

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

tôi có thể cung cấp một ví dụ tốt hơn nếu bạn dán mã của bạn vào câu hỏi của bạn.

+0

Xin chào Scott! Tôi nghĩ rằng Tempfile có thể là giải pháp. Nhưng tôi vẫn còn bối rối về cách sử dụng điều này để làm nhiệm vụ mà tôi đã đề cập ở trên. Một ví dụ sẽ tốt hơn nhiều. Cảm ơn – Autodidact

Các vấn đề liên quan