Have just been creating a new Rails 4 app and am looking to use Google Cloud Storage for the first time. Previously I had been using Amazon S3
To upload images I'll be using carrierwave.
GemFile
# for image uploading gem 'carrierwave' gem "carrierwave-mongoid", git: "git://github.com/jnicklas/carrierwave-mongoid.git" gem 'mongoid-grid_fs', github: 'ahoward/mongoid-grid_fs' gem 'fog' gem 'rmagick'
config/initializers/carrierwave.rb
require 'fog'
require 'rails'
require 'carrierwave'
CarrierWave.configure do |config|
config.root = Rails.root.join('tmp')
config.cache_dir = 'carrierwave'
config.fog_credentials = {
:provider => 'Google',
:google_storage_access_key_id => 'xxxxxx',
:google_storage_secret_access_key => 'xxxxxx'
}
config.fog_directory = 'bucket_name'
end
Here's how to find the details you need:
app/uploaders/image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base # Include RMagick or MiniMagick support: include CarrierWave::RMagick # include CarrierWave::MiniMagick include Sprockets::Rails::Helper # Choose what kind of storage to use for this uploader: storage :fog end
Important that you don't forget to include Sprockets::Rails::Helper in Rails 4+. Also, mongodb does not automatically save associated records so be sure to use cascade_callbacks or autosave options in your model depending on the relation - more info.
You should be good to go after this :)

