2013-04-23 35 views
2

我使用載波上傳文件(carrierwave 0.6.2,Rails 3.2.3)。在開發過程中,文件保存在本地,生產時使用Fog將其保存到S3中。載波上傳到S3時載波下采樣PDF

在生產中上傳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進行任何圖像處理?

在此先感謝, 菲爾。

+0

您是否嘗試過使用[pry](https://github.com/pry/pry)的''binding.pry'來查看您的拇指版本是否觸發了PDF?如果不是,您的pdf將在其他地方得到處理。如果是這樣,那個斷點應該有希望給你一個關於你如何通過「圖像」條件的概念。 – Taavo 2013-04-27 14:24:14

+0

似乎可能是一個愚蠢的問題,但是你是否刪除了「進程」調用並且問題仍然存在? – fotanus 2013-05-02 02:08:52

回答

0

我能夠自己解決這個問題。看來所有上傳都會調用旨在糾正圖像方向和去除EXIF數據的回調,而不僅僅是PDF。