Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

How to: Recreate and reprocess your files stored on fog

Sergey Alekseev edited this page · 5 revisions
Clone this wiki locally

Recording this here for others with the same issue.

Let's say you're storing your carrierwave files on S3 or some other cloud storage provider through fog.

Let's say you've made some changes to your versions and/or processing of these files and you wish to re-process everything.

With file storage this is simple but with fog it's a bit less straight-forward. The magic incantation is:

YourModel.find_each do |ym| 
  begin
    ym.process_your_uploader_upload = true # only 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! 
    ym.save! 
  rescue => e
    puts  "ERROR: YourModel: #{ym.id} -> #{e.to_s}"
  end
end

The trick here is that when you call retrieve_from_cache!, your_uploader.file becomes a CarrierWave::SanitizedFile where it was previously a CarrierWave::Storage::Fog::File.

Also with carrierwave_backgrounder you need to set process_#{uploader}_upload flag to true, otherwise it won't generate versions.

Good luck!

Something went wrong with that request. Please try again.