Class: CarrierWave::Storage::Fog
- Defined in:
- lib/carrierwave/storage/fog.rb
Overview
Stores things using the “fog” gem.
fog supports storing files with AWS, Google, Local and Rackspace
You need to setup some options to configure your usage:
- :fog_credentials
-
host info and credentials for service
- :fog_directory
-
specifies name of directory to store data in, assumed to already exist
- :fog_attributes
-
(optional) additional attributes to set on files
- :fog_public
-
(optional) public readability, defaults to true
- :fog_authenticated_url_expiration
-
(optional) time (in seconds) that authenticated urls
will be valid, when fog_public is false and provider is AWS or Google, defaults to 600
- :fog_use_ssl_for_aws
-
(optional) #public_url will use https for the AWS generated URL]
AWS credentials contain the following keys:
- :aws_access_key_id
- :aws_secret_access_key
- :region
- :aws_secret_access_key
-
(optional) defaults to ‘us-east-1’
:region should be one of ['eu-west-1', 'us-east-1', 'ap-southeast-1', 'us-west-1', 'ap-northeast-1']
Google credentials contain the following keys:
- :google_storage_access_key_id
- :google_storage_secrete_access_key
-
Local credentials contain the following keys:
- :local_root
-
local path to files
Rackspace credentials contain the following keys:
- :rackspace_username
- :rackspace_api_key
-
A full example with AWS credentials:
CarrierWave.configure do |config| config.fog_credentials = { :aws_access_key_id => 'xxxxxx', :aws_secret_access_key => 'yyyyyy', :provider => 'AWS' } config.fog_directory = 'directoryname' config.fog_public = true end
Defined Under Namespace
Classes: File
Instance Attribute Summary
Attributes inherited from Abstract
Class Method Summary collapse
Instance Method Summary collapse
- #connection ⇒ Object
-
#retrieve!(identifier) ⇒ Object
Retrieve a file.
-
#store!(file) ⇒ Object
Store a file.
Methods inherited from Abstract
Constructor Details
This class inherits a constructor from CarrierWave::Storage::Abstract
Class Method Details
.connection_cache ⇒ Object
60 61 62 |
# File 'lib/carrierwave/storage/fog.rb', line 60 def connection_cache @connection_cache ||= {} end |
Instance Method Details
#connection ⇒ Object
97 98 99 100 101 102 |
# File 'lib/carrierwave/storage/fog.rb', line 97 def connection @connection ||= begin = credentials = uploader.fog_credentials self.class.connection_cache[credentials] ||= ::Fog::Storage.new() end end |
#retrieve!(identifier) ⇒ Object
Retrieve a file
Parameters
- identifier (String)
-
unique identifier for file
Returns
- CarrierWave::Storage::Fog::File
-
the stored file
93 94 95 |
# File 'lib/carrierwave/storage/fog.rb', line 93 def retrieve!(identifier) CarrierWave::Storage::Fog::File.new(uploader, self, uploader.store_path(identifier)) end |
#store!(file) ⇒ Object
Store a file
Parameters
- file (CarrierWave::SanitizedFile)
-
the file to store
Returns
- CarrierWave::Storage::Fog::File
-
the stored file
76 77 78 79 80 |
# File 'lib/carrierwave/storage/fog.rb', line 76 def store!(file) f = CarrierWave::Storage::Fog::File.new(uploader, self, uploader.store_path) f.store(file) f end |