我如何获得rails / ngnix清理/ tmp / RackMultipart *文件?

当用户上传图片时,像这样的文件会在/tmp

 RackMultipart20101130-1130-1l2q8dt-0 RackMultipart20101130-1130-1t11oa9-0 RackMultipart20101130-1130-59nrpq-0 RackMultipart20101130-1130-6jdqem-0 RackMultipart20101130-11807-1usq3d8-0 RackMultipart20101130-11807-nns7dw-0 

上传完成后,如何获得rails / nginx / passenger来清理这些文件?

我在用着:

  • nginx 0.8.53
  • Phusion Passenger 2.2.15(mod_rails / mod_rack)
  • Ruby on Rails 2.3.8
  • 回形针rubygem上传图像

首先想到的是带有crontab的Rake任务,以便不时清除/tmp目录。

  1. lib/tasks创建一个删除RackMultipart*文件的新Rake任务。
  2. 每隔X小时执行一次作为crontab的Rake任务。
  3. (可选)使用每当简化步骤2(与Capistrano结合相当强大)

这表示最好问Paperclip清除文件,因为上面的方法可以删除一个临时文件仍在使用的回形针,但我不知道如何做到这一点。

如果你不想写一个Rake任务,我会建议安装debian / ubuntu的tmpreaper包。 可以根据需要配置清理/tmp (例如,删除最近一小时未访问的文件)。

底层Papeclip问题#902已经解决了Paperclip 3.1.0的发布,之后我们就看不到有这么多的RackMultipart *文件了。