Class: AwsClient::S32Wrapper

Inherits:
Wrapper
  • Object
show all
Defined in:
lib/s32_wrapper.rb

Instance Attribute Summary

Attributes inherited from Wrapper

#client

Instance Method Summary collapse

Constructor Details

#initialize(*params) ⇒ S32Wrapper

Returns a new instance of S32Wrapper.



4
5
6
7
8
# File 'lib/s32_wrapper.rb', line 4

def initialize(*params)
  super
  @credentials_key = params[0][:credentials_key]
  @aws_region = params[0][:region]
end

Instance Method Details

#bucketsObject



14
15
16
# File 'lib/s32_wrapper.rb', line 14

def buckets
  return resource.buckets
end

#find_bucket_by(bucket_name) ⇒ Object



18
19
20
# File 'lib/s32_wrapper.rb', line 18

def find_bucket_by(bucket_name)
  buckets.select{|bucket| bucket.name == bucket_name }.first
end

#find_or_create_bucket(bucket_name) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/s32_wrapper.rb', line 22

def find_or_create_bucket(bucket_name)
  begin
    bucket = resource.create_bucket(:bucket => bucket_name)
  rescue Aws::S3::Errors::BucketAlreadyOwnedByYou
    bucket = find_bucket_by(bucket_name)
  end
  return bucket
end

#resourceObject



10
11
12
# File 'lib/s32_wrapper.rb', line 10

def resource
  @resource ||= Aws::S3::Resource.new(client: client)
end

#write_data_to_bucket(bucket_name, data, filename) ⇒ Object



38
39
40
41
# File 'lib/s32_wrapper.rb', line 38

def write_data_to_bucket(bucket_name, data, filename)
  s3_object = write_to_s3_bucket(filename, data, bucket_name)
  return s3_object
end

#write_local_file_to_bucket(bucket_name, file_path) ⇒ Object



31
32
33
34
35
36
# File 'lib/s32_wrapper.rb', line 31

def write_local_file_to_bucket(bucket_name, file_path)
  key = File.basename(file_path)
  body = IO.read(file_path)
  s3_object = write_to_s3_bucket(key, body, bucket_name)
  return s3_object
end

#write_to_s3_bucket(key, body, bucket_name) ⇒ Object



43
44
45
46
# File 'lib/s32_wrapper.rb', line 43

def write_to_s3_bucket(key, body, bucket_name)
  bucket = find_or_create_bucket(bucket_name)
  s3_object = bucket.put_object(:key => key, :body => body)
end