2012-06-03 51 views
1

據我所知,它在上傳器中定義的每個version CarrierWave將原始文件從緩存複製到tmp路徑,並將此tmp文件交給本版本定義的任何處理。然後它可以存儲所有文件。有時(例如,當爲videofile生成縮略圖時),這種複製可能過於昂貴。我可以讓CarrierWave不復制,並讓我在緩存中生成原始文件的版本?使CarrierWave無法複製原始文件的版本

編輯我有move_to_cachemove_to_store返回 真(哎呀我忘了我自己的腦袋很快)。而我寫的CarrierWave::RMagick線測試處理模塊:

module CarrierWave 
    module Thumbnailer 
    def generate_thumbnails 
     debugger 
     x = 1 
    end 
    end 
end 

,我有上載內以下行

version :thumb do 
    process :generate_thumbnails 
end 

但是當執行停止對debugger(這就是我可以開始處理)CarrierWave已經複製並重命名上傳的文件。我可以在緩存目錄中看到他們兩個。

回答

2

退房Large Files下的自述......自述:

class MyUploader < CarrierWave::Uploader::Base 
    def move_to_cache 
    true 
    end 
    def move_to_store 
    true 
    end 
end 

當move_to_cache和/或move_to_store方法返回true,文件 將被移動(而不是複製)到高速緩存並分別存儲。

+0

我把它設置爲false。但是這影響了如何將上傳的文件從web服務器處理到CarrierWave緩存並存儲。它與版本無關。對? –

+0

我應該沿着「lib/carrierwave/processing/rmagick.rb」編寫自定義處理模塊。 –

+0

move_to_cache和move_to_store返回true,我按照自述文件中的建議做,在發佈時發生錯誤。抱歉 –

相關問題