上载到S3时,Carrierwave下采样PDF

时间:2013-04-23 20:32:30

标签: ruby-on-rails imagemagick carrierwave

我正在使用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视为图像(该类型被检测为application / pdf)。

当我检查我的Mac上的文件时,看起来上传的版本(从S3抓取)已被ImageMagic重新编码,表明它不被视为非图像文件。

有没有办法告诉CarrierWave避免对PDF进行任何图像处理?

提前致谢, 菲尔。

1 个答案:

答案 0 :(得分:0)

我能够自己解决这个问题。似乎所有上传都调用了旨在纠正图像方向和剥离EXIF数据的回调,而不仅仅是PDF。