class DefraRuby::Aws::Bucket

Attributes

bucket_name[R]
credentials[R]
encrypt_with_kms[R]
region[RW]

Public Class Methods

new(configs) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 8
def initialize(configs)
  @credentials = configs[:credentials]
  @bucket_name = configs[:name]
  @region = setup_region(configs[:region])
  @encrypt_with_kms = setup_encrypt_with_kms(configs[:encrypt_with_kms])

  validate!
end

Public Instance Methods

access_key_id() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 17
def access_key_id
  credentials[:access_key_id]
end
delete(file_name, options = {}) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 37
def delete(file_name, options = {})
  DeleteFileFromBucketService.run(self, file_name, options)
end
encryption_type() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 25
def encryption_type
  @_encryption_type ||= @encrypt_with_kms ? "aws:kms" : :AES256
end
load(file, options = {}) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 29
def load(file, options = {})
  BucketLoaderService.run(self, file, options)
end
presigned_url(file_name, options = {}) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 33
def presigned_url(file_name, options = {})
  PresignedUrlService.run(self, file_name, options)
end
secret_access_key() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 21
def secret_access_key
  credentials[:secret_access_key]
end

Private Instance Methods

default_region() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 51
def default_region
  "eu-west-1"
end
empty?(object) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 94
def empty?(object)
  object.nil? || object.empty?
end
raise_missing_access_key() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 86
def raise_missing_access_key
  raise("DefraRuby::Aws buckets configurations: missing access key id for bucket #{bucket_name}")
end
raise_missing_credentials() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 82
def raise_missing_credentials
  raise("DefraRuby::Aws buckets configurations: missing credentials for bucket #{bucket_name}")
end
raise_missing_secret_access_key() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 90
def raise_missing_secret_access_key
  raise("DefraRuby::Aws buckets configurations: missing secret access key for bucket #{bucket_name}")
end
raise_not_valid_name() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 78
def raise_not_valid_name
  raise("DefraRuby::Aws buckets configurations: missing bucket name")
end
setup_encrypt_with_kms(encrypt_with_kms) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 55
def setup_encrypt_with_kms(encrypt_with_kms)
  return false if encrypt_with_kms.nil?

  # Handle the argument being either a string or a boolean, or some other
  # value e.g. "foo"
  encrypt_with_kms.to_s.downcase == "true"
end
setup_region(region) click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 45
def setup_region(region)
  return default_region if region.nil? || region.empty?

  region
end
validate!() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 63
def validate!
  validate_presence_of_name!
  validate_presence_of_credentials!
end
validate_presence_of_credentials!() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 72
def validate_presence_of_credentials!
  raise_missing_credentials if empty?(credentials)
  raise_missing_access_key if empty?(access_key_id)
  raise_missing_secret_access_key if empty?(secret_access_key)
end
validate_presence_of_name!() click to toggle source
# File lib/defra_ruby/aws/bucket.rb, line 68
def validate_presence_of_name!
  raise_not_valid_name if bucket_name.nil? || bucket_name.empty?
end