私が理解しているようversion
に、アップローダーで定義されているそれぞれについて、CarrierWave は元のファイルをキャッシュから tmp パスにコピーし、この tmp ファイルをこのバージョンで定義されている処理に引き渡します。その後、すべてのファイルを保存できます。場合によっては (ビデオファイルのサムネイルを生成する場合など)、このコピーに非常にコストがかかることがあります。CarrierWave をコピーせずに、元のファイルがキャッシュにある間に元のファイルからバージョンを生成できるようにすることはできますか?
Edit I have move_to_cache
and move_to_store
to return false true (おっと、すぐに自分の頭を忘れてしまいます)。そして、次の行にテスト処理モジュールを書きましたCarrierWave::RMagick
。
module CarrierWave
module Thumbnailer
def generate_thumbnails
debugger
x = 1
end
end
end
アップローダー内に次の行があります
version :thumb do
process :generate_thumbnails
end
しかし、debugger
(ここで処理を開始できる) で実行が停止すると、CarrierWave はアップロードされたファイルを既にコピーして名前を変更しています。どちらもキャッシュ ディレクトリ内に表示されます。