【发布时间】:2011-01-04 02:41:25
【问题描述】:
我正在使用 Paperclip (2.3) 处理在 Ubuntu 上运行的 Rails 3.0.3 应用程序上的图像上传。 Paperclip 正在按照宣传的方式处理上传,但在应用程序的 /tmp 文件夹中创建的 RackMultipart* 文件仍然存在——也就是说,它们只是累积而不是自行删除。我意识到我可以使用 tmpreaper 删除旧的 tmpfiles,但我真的很想找到一个更优雅(和可扩展)的解决方案。
我之前遇到过临时文件(即 RackMultipart* 文件)累积在 Rails 应用程序的根目录(而不是 /tmp)中的问题。我通过在 environment.rb 文件中显式设置临时路径来解决这个问题,如下所示:
ENV['TMPDIR'] = Rails.root.join('tmp')
是否需要设置另一个环境变量以确保临时文件得到正确处理——即一旦它们被保存在模型中就被删除?我不确定这是否是 Paperclip 或我的 Rails 设置的问题。
我到处搜索,但在这方面进展甚微。如有任何线索,我将不胜感激。
真诚的感谢。
PS - 我目前正在使用 S3 进行存储。不过,这似乎与问题无关——我在本地存储文件时遇到了同样的问题。
【问题讨论】:
-
现在我正在使用 cron 和 tmpreaper 处理临时文件问题。 CRON 每 10 分钟运行一次 tmpreaper 以清除我的 tmp 目录。仍然想要一个更优雅的修复,但这似乎现在有效。
-
您使用的是什么服务器?也许是彪马?
标签: file-upload garbage-collection ruby-on-rails-3 paperclip tmp