【发布时间】:2012-06-04 05:27:34
【问题描述】:
据我了解,对于上传器中定义的每个 version,CarrierWave 会将原始文件从缓存复制到 tmp 路径,并将此 tmp 文件移交给为此版本定义的任何处理。然后它可以存储所有文件。有时(例如,在为视频文件生成缩略图时)这种复制可能会非常昂贵。我可以让 CarrierWave 不复制并让我在原始文件处于缓存时生成版本吗?
编辑我有move_to_cache 和move_to_store 来返回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 已经复制并重命名了上传的文件。我可以在缓存目录中看到它们。
【问题讨论】: