文件上传 – 为什么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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...