lib/cloud_crowd/asset_store.rb in cloud-crowd-0.3.2 vs lib/cloud_crowd/asset_store.rb in cloud-crowd-0.3.3
- old
+ new
@@ -1,41 +1,41 @@
require 'tmpdir'
module CloudCrowd
- # The AssetStore provides a common API for storing files and returning URLs
+ # 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 --
+ # 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
- # <tt>save(local_path, save_path)</tt>, <tt>cleanup(job)</tt>, and optionally,
+ # To implement a new back-end for the AssetStore, you must provide
+ # <tt>save(local_path, save_path)</tt>, <tt>cleanup(job)</tt>, and optionally,
# a <tt>setup</tt> method that will be called once at initialization.
class AssetStore
-
+
autoload :S3Store, 'cloud_crowd/asset_store/s3_store'
autoload :FilesystemStore, 'cloud_crowd/asset_store/filesystem_store'
-
- # Configure the AssetStore with the specific storage implementation
+
+ # Configure the AssetStore with the specific storage implementation
# specified by 'storage' in <tt>config.yml</tt>.
case CloudCrowd.config[:storage]
when 's3' then include S3Store
when 'filesystem' then include FilesystemStore
else raise Error::StorageNotFound, "#{CloudCrowd.config[:storage]} is not a valid storage back end"
end
-
+
# Creating the AssetStore ensures that its scratch directory exists.
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
-
+
# Get the path to CloudCrowd's temporary local storage. All actions run
# in subdirectories of this.
def temp_storage_path
- "#{Dir.tmpdir}/cloud_crowd_tmp"
+ @temp_storage_path ||= CloudCrowd.config[:temp_storage_path] || "#{Dir.tmpdir}/cloud_crowd_tmp"
end
-
+
end
end
\ No newline at end of file