Skip to content
Richard Lee edited this page Apr 25, 2022 · 229 revisions
Clone this wiki locally


Please feel free to add more information, helpful links, how-tos, etc. Thank you!

Getting help

If you have a question about CarrierWave, please search the Wiki and Google Group to see if your question has already been answered. If it has not been discussed previously, please post your question to the Google Group.

Please review the Known issues wiki page for common problems that you may encounter.

Before reporting an issue, please ensure you are using latest CarrierWave version. Check the History.txt file to see if your issue has already been solved but not yet released in the gem version. Search the existing GitHub Issues to make sure your issue hasn’t already been discussed. If you think you’ve found a security bug, do NOT use the GitHub Issue tracker. Please send a private GitHub message to “jnicklas” instead.

When reporting an issue, please include the version information for all software involved. This would include the version of Ruby, Rails, Sinatra, etc that you are using. Include the error class, error message and backtrace if you are getting an error. Please provide this information in a Gist on GitHub instead of within the issue itself. Simply pasting in a heap of code into an issue is generally not helpful because it can be very difficult to read. It can also be extremely helpful if you try to isolate the bug in a small application and push it to github. You can use the small Sinatra application here as a base.

Please remember that this is an open-source project, and the contributions of volunteers have made it possible. Please be polite when asking for help, and provide as much information as possible so that others can help you more easily.

If you’re experienced with Ruby, please try to reproduce the bug in the test suite. If you think you can fix the issue, pull requests with tests are always welcome. Again, remember that this is an open-source project, and the contributions of volunteers have made it possible. Please consider becoming a contributor!


Railscasts – CarrierWave File Uploads

Example applications

Rails 2.3.5 example by jnicklas
Carrierwave, DataMapper, & Sinatra starring in ‘Imagine the Possibilities’ by foysavas
Multiple file uploads with Ajax, Carrierwave, & Mongoid
Multiple Images Uploading With CarrierWave and PostgreSQL Array


Link Description
carriercouch CouchDB support
carrierwave-aliyun Aliyun OSS storage for CarrierWave
carrierwave-attachmentscanner Scan Carrierwave uploads for viruses and malware (third party service).
carrierwave-audio SoX audio file compression and watermarking
carrierwave-aws An aws-sdk based storage alternative to Fog
carrierwave-base64 Another plugin that handles uploads from data uri encoded as base64
carrierwave-bombshelter A plugin to protect your uploaders from image bombs (such as specifically crafted PNGs that will cause OOM errors when processed by ImageMagick)
carrierwave-cascade Retrieve file from a secondary storage when the file is not in the primary storage.
carrierwave-cloudflare Integrates Carrierwave with Cloudflare Image Resizing.
carrierwave-color Store the dominant color of images.
carrierwave-colore CarrierWave adapter for the Colore document storage system.
carrierwave-daltonize Adds daltonize processing to carrierwave (using carrierwave-vips)
carrierwave-data-uri Plugin that allows create image from data uri
carrierwave-datamapper Datamapper support
carrierwave-dropbox Dropbox storage for CarrierWave.
carrierwave-encrypter-decrypter Secure your uploaded files on server
carrierwave-ftp FTP storage support
carrierwave-i18n Provides additional locales for CarrierWave, the classier solution for file uploads for Rails.
carrierwave-imageoptim This gem allows you to optimize CarrierWave images using the image_optim gem.
carrierwave-imageoptimizer Image optimization support for .jpeg, .gif, and .png formats
carrierwave-imagesorcery ImageSorcery support
carrierwave-jpegtran JPEG optimization using jpegtran or MozJPEG.
carrierwave-meta File’s metadata saving plugin for carrierwave
carrierwave-mimetype-fu Automatically check content_type on upload and set proper file extension
carrierwave-mongoid Mongoid and GridFS support
carrierwave-neo4j Neo4j support
carrierwave-neo4j-data-uri Carrierwave Neo4j plugin that allows to create image from data uri
carrierwave-orm-mongoo Mongoo support
carrierwave-processing Additional processing support for MiniMagick and RMagick
carrierwave-qiniu Qiniu storage support for CarrierWave
carrierwave-riak Riak Support
carrierwave-sequel Sequel support
carrierwave-serializable Allows mount uploader to serialized field
carrierwave-sharefile Adds ShareFile storage for CarrierWave.
carrierwave-truevault Adds TrueVault storage for CarrierWave.
carrierwave-unoconv LibreOffice conversion support via unoconv
carrierwave-upyun Yupoo UpYun storage for CarrierWave
carrierwave-video-thumbnailer Makes thumbnails for your videos
carrierwave-viewer Preview .doc, .ppt and .pdf docs with
carrierwave-vips Support for the VIPS image processing library, a fast and resource-efficient alternative to RMagick
carrierwave-webdav WebDAV storage for carrierwave
carrierwave_backgrounder Background processing support with Delayed Job, Resque, GirlFriday, Qu or Sidekiq
carrierwave_direct Process your uploads in the background by uploading directly to S3
ianyamey/carrierwave-truevault An alternative TrueVault add-on, using RestClient.
metaware/carrierwave-google-storage Carrierwave Google Storage adapter that relies on the official `gcloud` library instead of Fog.
mm-carrierwave Mongo Mapper support
newrelic-carrierwave Adds carrierwave instrumentation for NewRelic (supports RMagick, MiniMagick, and VIPS).
video_thumbnailer A plugin that generate thumbnail for the videos uploaded in the application.


How to: Easy Ajax file uploads with Remotipart
How to: Secure Upload
How to: Migrate to the new Fog storage provider
How to: Validate uploads with Active Record
How to: Make Carrierwave work on Heroku
How to: Store the uploaded file size and content type
How to: Specify the image quality
How to: Detect a new file in a mounted uploader
How to: Create random and unique filenames for all versioned files
How to: Use a timestamp in file names
How to: Do conditional processing
How to: Use test fixtures
How to: Test Fog based uploaders
How to: Delete cache garbage directories
How to: Tracking Dirty State
How to: Upload from a string in Rails 3 or later
How to: "Upload" from a local file
How to: Make a fast lookup able storage directory structure
How to: Validate image file size
How to: Cleanup after your Rspec tests
How to: Cleanup original file that wasn't uploaded like as Tempfile
How to: Customize your version file names
How to: Use CarrierWave with Rails 2.3.x
How to: Move version name to end of filename, instead of front
How to: Silently ignore missing files on destroy or overwrite
How to: Use CarrierWave with Devise
How to: Use Rackspace ServiceNet (snet) to transfer from CloudServer to CloudFiles
How to: Dynamically set storage type
How to: Use Callbacks
How to: Get version image dimensions
How to: Keep uploaded files (for a specific uploader)
How to: Make CarrierWave work with Padrino
How to: Create a thumbnail with both color and grayscale versions in one image
How to: Store private/public uploads in different Cloud Files Containers with Fog
How to: Recreate and reprocess your files stored on fog
How to: Store same file on same place, but different record
How to: Migrate from paperclip to carrierwave (example thor task)
How to: Making uploads work across form redisplays with accept_nested_attributes_for
How to: Efficiently converting image formats
How to: Define different storage configuration for each Uploader.
How to: Ensure file uniqueness.
How to: Prevent CarrierWave from locking the DB row of your object while it's processing the image attached to that object
How to: Keep (not replace) files on nested edits
How to: use with PaperTrail
How to: Add more files and remove single file when using default multiple file uploads feature
How to: Secure uploaded file in S3 and make it only accessible by supplying secret token?
How to: Use minio with Carrierwave
How to: Add, remove and reorder images using multiple file upload
How to: Set the content type using the UNIX file utility

Blog posts

Functional tests with Carrierwave
How to use Delayed Job to handle your Carrierwave processing => 404
Migrating from attachment_fu to CarrierWave => 404
File Uploads with Rails 3, Plupload, and CarrierWave => 404
Full Control over Changing (S3) Upload Path Name
CarrierWave and Ruby 1.9.2 and Other Tips => 404
Saving Best Image Geometry
Mocking Fog when using it with Carrierwave => 404
Extract Geolocation Image EXIF Data using RMagick on Heroku => 404
Custom RSpec be_square matcher for CarrierWave
A Gentle Introduction to CarrierWave
Recreating a single version of an uploaded file
Video Encoding with Uploadify, CarrierWave and Zencoder
Video encoding processor for CarrierWave
Multiply files upload with nested_attributes Step-by-step tutorial
Getting image data from a CarrierWave Uploader into RMagick, without manipulate!
Processing images with CarrierWave
Multiple Images Uploading With CarrierWave and PostgreSQL Array
Rails 5 and CarrierWave