我正在使用 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 进行存储。但这似乎与问题无关——当我在本地存储文件时遇到了同样的问题。
The 临时文件收割者Rack 中间件可以解决这个问题。
http://www.rubydoc.info/github/rack/rack/Rack/TempfileReaper http://www.rubydoc.info/github/rack/rack/Rack/TempfileReaper
在 application.rb 中包含这一行可以解决问题:
config.middleware.use Rack::TempfileReaper
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)