Class: AwsClient::S3Wrapper
- Inherits:
-
Wrapper
- Object
- Wrapper
- AwsClient::S3Wrapper
- Defined in:
- lib/s3_wrapper.rb
Constant Summary collapse
- BUCKET_DEFINITION_FILE =
".aws_buckets"- PATH_TO_BUCKETS_DEFINITION =
File.join(Dir.home, BUCKET_DEFINITION_FILE)
Instance Method Summary collapse
- #bucket_name_for_function(bucket_function) ⇒ Object
- #bucket_object_for_bucket_prefix(bucket_prefix_code) ⇒ Object
- #bucket_prefixes ⇒ Object
- #buckets ⇒ Object
- #find_bucket_by(bucket_name) ⇒ Object
- #find_or_create_bucket_for(bucket_prefix_code) ⇒ Object
-
#initialize(*params) ⇒ S3Wrapper
constructor
A new instance of S3Wrapper.
- #resource ⇒ Object
- #write_file_to_bucket(bucket_prefix_code, file_path) ⇒ Object
Constructor Details
#initialize(*params) ⇒ S3Wrapper
Returns a new instance of S3Wrapper.
7 8 9 10 11 |
# File 'lib/s3_wrapper.rb', line 7 def initialize(*params) super @credentials_key = params[0][:credentials_key] @aws_region = params[0][:region] end |
Instance Method Details
#bucket_name_for_function(bucket_function) ⇒ Object
47 48 49 |
# File 'lib/s3_wrapper.rb', line 47 def bucket_name_for_function(bucket_function) return "#{bucket_function}.#{@credentials_key}.#{@aws_region}" end |
#bucket_object_for_bucket_prefix(bucket_prefix_code) ⇒ Object
17 18 19 20 |
# File 'lib/s3_wrapper.rb', line 17 def bucket_object_for_bucket_prefix(bucket_prefix_code) bucket = find_or_create_bucket_for(bucket_prefix_code) return bucket.objects.collect{|object| object.object } # 'object.object' The S3 object belonging to the S3 resource end |
#bucket_prefixes ⇒ Object
51 52 53 |
# File 'lib/s3_wrapper.rb', line 51 def bucket_prefixes YAML.load_file(PATH_TO_BUCKETS_DEFINITION) end |
#buckets ⇒ Object
37 38 39 |
# File 'lib/s3_wrapper.rb', line 37 def buckets return resource.buckets end |
#find_bucket_by(bucket_name) ⇒ Object
22 23 24 |
# File 'lib/s3_wrapper.rb', line 22 def find_bucket_by(bucket_name) buckets.select{|bucket| bucket.name == bucket_name }.first end |
#find_or_create_bucket_for(bucket_prefix_code) ⇒ Object
41 42 43 44 45 |
# File 'lib/s3_wrapper.rb', line 41 def find_or_create_bucket_for(bucket_prefix_code) bucket_prefix = bucket_prefixes[bucket_prefix_code] full_bucket_name = bucket_name_for_function(bucket_prefix) return find_or_create_bucket(full_bucket_name) end |
#resource ⇒ Object
13 14 15 |
# File 'lib/s3_wrapper.rb', line 13 def resource @resource ||= Aws::S3::Resource.new(client: client) end |
#write_file_to_bucket(bucket_prefix_code, file_path) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/s3_wrapper.rb', line 26 def write_file_to_bucket(bucket_prefix_code, file_path) bucket = find_or_create_bucket_for(bucket_prefix_code) s3_object = bucket.put_object( :key => File.basename(file_path), :body => IO.read(file_path) ) puts "\nRemote file" puts "#{s3_object.public_url}" return s3_object end |