2009-03-30 23 views
5

My RailsアプリはPDF XFAファイルを処理して生成し、ユーザ/ブラウザに送信する必要があります。 うまく動作します。しかし問題は、ファイルをユーザーに送る前に、2つのファイルをrailsのtmpディレクトリに作成することです。ruby​​-railsで一時ファイルを自動的に削除する方法は?

10個の要求がpdf_controllerに来ると、tmpディレクトリ内の一時ファイルの数が2倍になり、空き領域が消費されます。

私は周りを検索した後、私は掃除機が救助に来ると思った。しかし、スイーパーについての知識はあまりありません。

だから、どのような方法をお勧めしますか?

答えて

1

n分ごとにファイルを削除するcronタスクを使用するか、コントローラー自体から削除を注文できます。

+1

クーロンは良い解決策ではないかもしれません。ユーザーがtempfileで作成されたPDFファイルで表示され、いつかPDFフォームを送信せず、そのcronが起動してtempファイルを削除した後、ユーザーがPDFフォームを送信した場合、システムは緩い/無効。 – Autodidact

5

テンポファイルは、オブジェクトがファイナライズされたときにファイルを削除します。

Tempfile on Rdoc

例:

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

あなたがあなたの質問にあなたのコードを貼り付けた場合、私はより良い例を提供することができます。

+0

こんにちはスコット! 私はTempfileが解決策かもしれないと思います。しかし、私はまだこれを使って上記のタスクを行う方法を混乱させています。 例がはるかに良いでしょう。 ありがとう – Autodidact

関連する問題