我正在使用 CarrierWave 上传文件(carrierwave 0.6.2,Rails 3.2.3)。在开发中,文件保存在本地,在生产中,它们使用 Fog 保存到 S3。
当 PDF 在生产中上传时,它似乎被 imagemagick 重新采样并且质量降低。此外,文件大小大幅增加。
该站点托管在 Heroku 上,因此使用 CarrierWave Backgrounder 在后台完成图像处理。
在模型上,我有各种版本调用,但只有在上传的文件是图像时才会触发所有版本:
version :thumb, :if => :image? do
process :resize_to_fill => [200, 200]
end
def image?(new_file)
new_file.content_type.include? 'image'
end
我已经检查过了,它似乎没有将 PDF 视为图像(该类型被检测为应用程序/pdf)。
当我检查我的 mac 上的文件时,看起来上传的版本(从 S3 获取)已被 ImageMagic 重新编码,这表明它没有被视为非图像文件。
有没有办法告诉 CarrierWave 避免对 PDF 进行任何图像处理?
在此先感谢菲尔。