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 によって再エンコードされているように見え、非画像ファイルとして扱われていないことが示唆されます。
PDF の画像処理を回避するよう CarrierWave に指示する方法はありますか?
前もってありがとう、フィル。