Module: Gluttonberg::Library::Storage::S3::ClassMethods
- Defined in:
- lib/gluttonberg/library/storage/s3.rb
Constant Summary collapse
- TEMP_ASSET_DIRECTORY =
It run when the engine is loaded. It makes sure that all the required directories for storing assets are in the public dir, creating them if they are missing. It also stores the various paths so they can be retreived using the assets_dir method.
"tmp/user_assets"
Class Method Summary collapse
- .bucket_handle ⇒ Object
-
.migrate_file_to_s3(asset_hash, file_name) ⇒ Object
takes file from public/assets folder and upload to s3 if s3 info is given in CMS settings.
- .s3_bucket_name ⇒ Object
- .s3_server_access_key ⇒ Object
- .s3_server_key_id ⇒ Object
- .s3_server_url ⇒ Object
- .storage_setup ⇒ Object
Class Method Details
.bucket_handle ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 33 def self.bucket_handle key_id = S3::ClassMethods.s3_server_key_id key_val = S3::ClassMethods.s3_server_access_key s3_server_url = S3::ClassMethods.s3_server_url s3_bucket = S3::ClassMethods.s3_bucket_name if !key_id.blank? && !key_val.blank? && !s3_server_url.blank? && !s3_bucket.blank? s3 = Aws::S3.new(key_id, key_val, {:server => s3_server_url}) bucket = s3.bucket(s3_bucket) else nil end end |
.migrate_file_to_s3(asset_hash, file_name) ⇒ Object
takes file from public/assets folder and upload to s3 if s3 info is given in CMS settings
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 47 def self.migrate_file_to_s3(asset_hash , file_name) bucket = bucket_handle unless bucket.blank? local_file = "public/user_assets/" + asset_hash + "/" + file_name key_for_s3 = "user_assets/" + asset_hash + "/" + file_name date = Time.now+1.years key = bucket.key(key_for_s3, true) asset = Gluttonberg::Asset.where(:asset_hash => asset_hash).first unless asset.blank? puts " Copying #{local_file} to #{S3::ClassMethods.s3_bucket_name}" unless asset.mime_type.blank? key.put(File.open(local_file), 'public-read', {"Expires" => date.rfc2822, "content-type" => asset.mime_type}) else key.put(File.open(local_file), 'public-read', {"Expires" => date.rfc2822}) end Gluttonberg::Asset.update_attributes(:copied_to_s3 => true) puts "Copied" end end end |
.s3_bucket_name ⇒ Object
21 22 23 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 21 def self.s3_bucket_name Gluttonberg::Setting.get_setting("s3_bucket") end |
.s3_server_access_key ⇒ Object
29 30 31 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 29 def self.s3_server_access_key Gluttonberg::Setting.get_setting("s3_access_key") end |
.s3_server_key_id ⇒ Object
25 26 27 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 25 def self.s3_server_key_id Gluttonberg::Setting.get_setting("s3_key_id") end |
.s3_server_url ⇒ Object
17 18 19 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 17 def self.s3_server_url Gluttonberg::Setting.get_setting("s3_server_url") end |
.storage_setup ⇒ Object
11 12 13 14 15 |
# File 'lib/gluttonberg/library/storage/s3.rb', line 11 def self.storage_setup Library.set_asset_root("user_assets", TEMP_ASSET_DIRECTORY, "public/test_assets") FileUtils.mkdir(Library.root) unless File.exists?(Library.root) || File.symlink?(Library.root) FileUtils.mkdir(Library.tmp_root) unless File.exists?(Library.tmp_root) || File.symlink?(Library.tmp_root) end |