Clone this wiki locally
Please feel free to add more information, helpful links, how-tos, etc. Thank you!
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!
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
carrierwave-unoconv LibreOffice conversion support via unoconv
carrierwave-imagesorcery ImageSorcery support
carrierwave-datamapper Datamapper support
carrierwave-mongoid Mongoid and GridFS support
carrierwave-sequel Sequel support
carriercouch CouchDB support
mm-carrierwave Mongo Mapper support
carrierwave_backgrounder Background processing support with Delayed Job, Resque, GirlFriday, Qu or Sidekiq
carrierwave-orm-mongoo Mongoo support
carrierwave-neo4j Neo4j support
carrierwave-aws An aws-sdk based storage alternative to Fog
carrierwave-meta File’s metadata saving plugin for carrierwave
carrierwave_direct Process your uploads in the background by uploading directly to S3
carrierwave-upyun Yupoo UpYun storage for CarrierWave
carrierwave-aliyun Aliyun OSS storage for CarrierWave
carrierwave-riak Riak Support
carrierwave-processing Additional processing support for MiniMagick and RMagick
carrierwave-vips Support for the VIPS image processing library, a fast and resource-efficient alternative to RMagick
carrierwave-daltonize Adds daltonize processing to carrierwave (using carrierwave-vips)
carrierwave-qiniu Qiniu storage support for CarrierWave
video_thumbnailer A plugin that generate thumbnail for the videos uploaded in the application.
carrierwave-ftp FTP storage support
carrierwave-video-thumbnailer Makes thumbnails for your videos
carrierwave-serializable Allows mount uploader to serialized field
carrierwave-imageoptimizer Image optimization support for .jpeg, .gif, and .png formats
carrierwave-viewer Preview .doc, .ppt and .pdf docs with GroupDocs.com
carrierwave-cascade Retrieve file from a secondary storage when the file is not in the primary storage.
carrierwave-webdav WebDAV storage for carrierwave
carrierwave-dropbox Dropbox storage for CarrierWave.
carrierwave-mimetype-fu Automatically check content_type on upload and set proper file extension
carrierwave-encrypter-decrypter Secure your uploaded files on server
newrelic-carrierwave Adds carrierwave instrumentation for NewRelic (supports RMagick, MiniMagick, and VIPS).
carrierwave-truevault Adds TrueVault storage for CarrierWave.
ianyamey/carrierwave-truevault An alternative TrueVault add-on, using RestClient.
carrierwave-sharefile Adds ShareFile storage for CarrierWave.
carrierwave-data-uri Plugin that allows create image from data uri
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)
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
How to: "Upload" from a local file
How to: Make a fast lookup able storage directory structure
How to: Validate attachment 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
Functional tests with Carrierwave
How to use Delayed Job to handle your Carrierwave processing
Migrating from attachment_fu to CarrierWave
File Uploads with Rails 3, Plupload, and CarrierWave
Full Control over Changing (S3) Upload Path Name
Adding additional processing support to CarrierWave
CarrierWave and Ruby 1.9.2 and Other Tips
Saving Best Image Geometry
Mocking Fog when using it with Carrierwave
Extract Geolocation Image EXIF Data using RMagick on Heroku
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
Processing images with CarrierWave
Multiple Images Uploading With CarrierWave and PostgreSQL Array
Also checkout CarrierWave on Hacker Notes