我正在使用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