我正在寻找在 Heroku 上的 Rails 应用程序中上传文件的最佳方法。设置:Rails 3、Carrierwave、Heroku、Mongoid
问题:偶尔,当用户上传不同大小的文件时,图像会保存到数据库中,但在 Amazon S3 上无法以任何形式使用。这会导致图像在前端显示为丢失的图像占位符。
可能原因:图片已上传,但处理时间过长,由于Heroku的30秒硬请求时间限制导致请求超时,或者图像太大,尝试上传时,请求超时并出现H12错误。
解决方案:实施carrierwave-direct并将处理移至后台
拦截器:CarrierWaveDirect 不是 CarrierWave 的替代品。事实上,它在上传图片的过程中引入了一些重大的变化,特别是在db记录持久化的同时,不上传图片。此外,它不适用于我现有的目录结构,因此将现有文件移动到新结构似乎过于艰巨。CarrierWaveBackgrounder 不适合嵌入文档。
问题:我该怎么做?示例代码(如果需要),但尝试思考这个不仅仅是编码它。