module FDE::S3Client

Constants

VERSION

Public Class Methods

bucket() click to toggle source
# File lib/fde/s3_client.rb, line 51
def self.bucket
  if self.config.bucket_name.to_s.empty?
    raise BucketNameNotDefinedError
  end
  self.s3.bucket(self.config.bucket_name)
end
config() click to toggle source
# File lib/fde/s3_client.rb, line 20
def self.config
  @@config ||= Config.new
end
configure() { |config| ... } click to toggle source
# File lib/fde/s3_client.rb, line 24
def self.configure
  yield self.config
end
credentials() click to toggle source
# File lib/fde/s3_client.rb, line 38
def self.credentials
  if self.config.aws_access_key_id.to_s.empty?
    raise AWSAccessKeyIDNotDefinedError
  end
  if self.config.aws_secret_access_key.to_s.empty?
    raise AWSSecretAccessKeyNotDefinedError
  end
  Aws::Credentials.new(
    config.aws_access_key_id,
    config.aws_secret_access_key
  )
end
delete(key) click to toggle source
# File lib/fde/s3_client.rb, line 71
def self.delete(key)
  object = self.bucket.object(key)
  object.delete
end
download(key, target) click to toggle source
# File lib/fde/s3_client.rb, line 86
def self.download(key, target)
  object = self.bucket.object(key)
  object.download_file(target)
end
list() click to toggle source
# File lib/fde/s3_client.rb, line 76
def self.list
  self.bucket.objects.collect(&:key)
end
move(key, new_key) click to toggle source
# File lib/fde/s3_client.rb, line 80
def self.move(key, new_key)
  object = self.bucket.object(key)
  target = "#{object.bucket.name}/#{new_key}"
  object.move_to(target)
end
s3() click to toggle source
# File lib/fde/s3_client.rb, line 28
def self.s3
  if self.config.aws_region.to_s.empty?
    raise AWSRegionNotDefinedError
  end
  Aws::S3::Resource.new(
    region: self.config.aws_region,
    credentials: self.credentials
  )
end
upload_content(key, content) click to toggle source
# File lib/fde/s3_client.rb, line 67
def self.upload_content(key, content)
  self.s3.bucket(self.config.bucket_name).object(key).put(body: content)
end
upload_file(file_path, options = {}) click to toggle source
# File lib/fde/s3_client.rb, line 58
def self.upload_file(file_path, options = {})
  if options[:key]
    key = options[:folder].to_s + options[:key]
  else
    key = options[:folder].to_s + File.basename(file_path)
  end
  self.s3.bucket(self.config.bucket_name).object(key).upload_file(file_path)
end