文件上传 – 为什么RackMultipart *文件仍然存在于我的Rails / tmp目录中?

前端之家收集整理的这篇文章主要介绍了文件上传 – 为什么RackMultipart *文件仍然存在于我的Rails / tmp目录中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Paperclip(2.3)来处理在Ubuntu上运行的Rails 3.0.3应用程序的图像上传. Paperclip正在处理已发布的上传内容,但是在应用程序的/ tmp文件夹中创建的RackMultipart *文件保持不变 – 也就是说,它们只是累积而不是自己删除.我意识到我可以使用tmpreaper删除旧的tmpfiles,但我真的很想找到一个更优雅(可扩展)的解决方案.

我以前在Rails应用程序的根目录(而不是/ tmp)中累积了临时文件(即RackMultipart *文件).我通过在我的environment.rb文件中显式设置临时路径来解决这个问题:

ENV['TMPDIR'] = Rails.root.join('tmp')

是否有另一个环境变量需要设置,以确保正确处理临时文件 – 即一旦保存在模型中就被删除?我不知道这是否与Paperclip或Rails设置有关.

我已经搜索了很高,但在这方面取得的进展并不大.我会感谢任何潜在客户.

真诚的感谢

PS – 我正在使用S3进行存储.这似乎并不与问题有关 – 虽然我在本地存储文件时遇到了同样的问题.

解决方法

我不知道这是否更优雅,但这是我在文件保存后所做的事情“
tempfile = params[:file].tempfile.path
if File::exists?(tempfile)
  File::delete(tempfile)
end

猜你在找的Ruby相关文章