Class: CloudCrowd::AssetStore
- Inherits:
-
Object
- Object
- CloudCrowd::AssetStore
- Defined in:
- lib/cloud_crowd/asset_store.rb,
lib/cloud_crowd/asset_store/s3_store.rb,
lib/cloud_crowd/asset_store/filesystem_store.rb
Overview
The AssetStore provides a common API for storing files and returning URLs that can access them. At the moment, the files can be saved to either S3, or the local filesystem. You shouldn’t need to use the AssetStore directly – Action’s download
and save
methods use it behind the scenes.
To implement a new back-end for the AssetStore, you must provide save(local_path, save_path)
, cleanup(job)
, and optionally, a setup
method that will be called once at initialization.
Defined Under Namespace
Modules: FilesystemStore, S3Store
Instance Method Summary collapse
-
#initialize ⇒ AssetStore
constructor
Creating the AssetStore ensures that its scratch directory exists.
-
#temp_storage_path ⇒ Object
Get the path to CloudCrowd’s temporary local storage.
Constructor Details
#initialize ⇒ AssetStore
Creating the AssetStore ensures that its scratch directory exists.
27 28 29 30 31 |
# File 'lib/cloud_crowd/asset_store.rb', line 27 def initialize FileUtils.mkdir_p temp_storage_path unless File.exists? temp_storage_path raise Error::StorageNotWritable, "#{temp_storage_path} is not writable" unless File.writable?(temp_storage_path) setup if respond_to? :setup end |
Instance Method Details
#temp_storage_path ⇒ Object
Get the path to CloudCrowd’s temporary local storage. All actions run in subdirectories of this.
35 36 37 |
# File 'lib/cloud_crowd/asset_store.rb', line 35 def temp_storage_path @temp_storage_path ||= CloudCrowd.config[:temp_storage_path] || "#{Dir.tmpdir}/cloud_crowd_tmp" end |