Until now, I have been using Amazon S3 for storing users' files.
All I what has been needed here was to:
- specify Amazon S3 credentials to the bucket
- add 'aws-sdk'
gem to the Gemfile
- and in the model:
has_attached_file :avatar,
:styles => { :big => "100x100#", :thumb => "25x25#" },
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => ":rails_root/public/users/:id/:style/:basename.:extension",
:url => "/users/:id/:style/:basename.:extension"
To set the Amazon S3 adapter. That was all.
But how to set up Google cloud engine? So far I found only the fog gem , which I could use.
However, how should I configure the model to automatically store all uploaded files on Google servers?
Ok, so I made it work this way:
Gemfile:
gem 'fog'
config/gce.yml:
development:
provider: Google
google_storage_access_key_id: XXX
google_storage_secret_access_key: XXX
model:
has_attached_file :avatar,
:styles => { :big => "100x100#", :thumb => "25x25#" },
:storage => :fog,
:fog_credentials => "#{Rails.root}/config/gce.yml",
:fog_directory => "your bucket name",
:path => ":rails_root/public/users/:id/:style/:basename.:extension",
:url => "/users/:id/:style/:basename.:extension"