class CarrierWave::Storage::GridFS

The GridFS store uses MongoDB’s GridStore file storage system to store files

When you already have a Mongo connection object (for example through Mongoid) you can also reuse this connection:

  CarrierWave.configure do |config|
    config.storage = :grid_fs
    config.grid_fs_access_url = "/system/uploads"
  end

In the above example your documents url will look like:

   http://your-app.com/system/uploads/:document-identifier-here

Public Instance Methods

retrieve!(identifier) click to toggle source

Retrieve the file from MongoDB’s GridFS GridStore

Parameters

identifier (String)

the filename of the file

Returns

CarrierWave::Storage::GridFS::File

a sanitized file

# File lib/carrierwave/storage/grid_fs.rb, line 108
def retrieve!(identifier)
  CarrierWave::Storage::GridFS::File.new(uploader, uploader.store_path(identifier))
end
store!(file) click to toggle source

Store the file in MongoDB’s GridFS GridStore

Parameters

file (CarrierWave::SanitizedFile)

the file to store

Returns

CarrierWave::SanitizedFile

a sanitized file

# File lib/carrierwave/storage/grid_fs.rb, line 91
def store!(file)
  stored = CarrierWave::Storage::GridFS::File.new(uploader, uploader.store_path)
  stored.write(file)
  stored
end