2

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 に指示する方法はありますか?

前もってありがとう、フィル。

4

1 に答える 1