Module: CloudCrowd::AssetStore::CloudfilesStore
- Defined in:
- lib/cloud_crowd/asset_store/cloudfiles_store.rb
Overview
The CloudFilesStore is an implementation of an AssetStore that uses a Rackspace Cloud
Instance Method Summary collapse
-
#cleanup(job) ⇒ Object
Remove all of a Job’s resulting files from Cloud Files, both intermediate and finished.
-
#save(local_path, save_path) ⇒ Object
Save a finished file from local storage to Cloud Files.
-
#setup ⇒ Object
Configure Rackspace Cloud and connect.
Instance Method Details
#cleanup(job) ⇒ Object
Remove all of a Job’s resulting files from Cloud Files, both intermediate and finished.
29 30 31 32 33 34 35 36 37 |
# File 'lib/cloud_crowd/asset_store/cloudfiles_store.rb', line 29 def cleanup(job) @container.objects(:prefix => "#{job.action}/job_#{job.id}").each do |object| begin @container.delete_object object rescue log "failed to delete #{job.action}/job_#{job.id}" end end end |
#save(local_path, save_path) ⇒ Object
Save a finished file from local storage to Cloud Files.
22 23 24 25 26 |
# File 'lib/cloud_crowd/asset_store/cloudfiles_store.rb', line 22 def save(local_path, save_path) object = @container.create_object save_path, true object.load_from_filename local_path object.public_url end |
#setup ⇒ Object
Configure Rackspace Cloud and connect
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cloud_crowd/asset_store/cloudfiles_store.rb', line 10 def setup username = CloudCrowd.config[:cloudfiles_username] api_key = CloudCrowd.config[:cloudfiles_api_key] container = CloudCrowd.config[:cloudfiles_container] valid_conf = [username, api_key, container].all? {|s| s.is_a? String } raise Error::MissingConfiguration, "A Rackspace Cloud Files account must be configured in 'config.yml' before 'cloudfiles' storage can be used" unless valid_conf @cloud = CloudFiles::Connection.new(username, api_key) @container = @cloud.container container end |