我有一个已安装的上传器FileUploader,它有许多版本。已经上传了许多TIFF图像,虽然它们的文件名是正确的,但目前的版本还没有正确转换为JPEG / PNG。
更新了FileUploader以正确转换为JPEG / PNG后,重新创建的版本可以在本地文件系统上完美运行。在S3上使用远程图像时,即使使用指南(https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Recreate-and-reprocess-your-files-stored-on-fog),任何已经存在的图像都不会更新,尽管它们的时间戳有效。如果删除存储在S3上的版本,则会正确创建版本。
答案 0 :(得分:0)
我今天遇到了这个问题,您引用的链接在2年前已更新为:
使用carrierwave_backgrounder,您需要将process _#{uploader} _upload标志设置为true,否则它将不会生成版本。
因此,应该是:
YourModel.find_each do |ym|
begin
ym.process_your_uploader_upload = true # if you use carrierwave_backgrounder
ym.your_uploader.cache_stored_file!
ym.your_uploader.retrieve_from_cache!(ym.your_uploader.cache_name)
ym.your_uploader.recreate_versions!(:version1, :version2)
ym.save!
rescue => e
puts "ERROR: YourModel: #{ym.id} -> #{e.to_s}"
end
end
我刚刚对此进行了测试,可以确认即使您的FOG存储器上存在版本(以我的情况为S3),它也会创建新版本并覆盖它们。