Module: FDE::S3Client

Defined in:
lib/fde/s3_client.rb,
lib/fde/s3_client/version.rb

Defined Under Namespace

Classes: AWSAccessKeyIDNotDefinedError, AWSRegionNotDefinedError, AWSS3BucketNameNotDefinedError, AWSSecretAccessKeyNotDefinedError, BucketNameNotDefinedError, Config

Constant Summary collapse

VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.bucketObject



51
52
53
54
55
56
# 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

.configObject



20
21
22
# File 'lib/fde/s3_client.rb', line 20

def self.config
  @@config ||= Config.new
end

.configure {|self.config| ... } ⇒ Object

Yields:



24
25
26
# File 'lib/fde/s3_client.rb', line 24

def self.configure
  yield self.config
end

.credentialsObject



38
39
40
41
42
43
44
45
46
47
48
49
# 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) ⇒ Object



67
68
69
70
# File 'lib/fde/s3_client.rb', line 67

def self.delete(key)
  object = self.bucket.object(key)
  object.delete
end

.download(key, target) ⇒ Object



82
83
84
85
# File 'lib/fde/s3_client.rb', line 82

def self.download(key, target)
  object = self.bucket.object(key)
  object.download_file(target)
end

.listObject



72
73
74
# File 'lib/fde/s3_client.rb', line 72

def self.list
  self.bucket.objects.collect(&:key)
end

.move(key, new_key) ⇒ Object



76
77
78
79
80
# File 'lib/fde/s3_client.rb', line 76

def self.move(key, new_key)
  object = self.bucket.object(key)
  target = "#{object.bucket.name}/#{new_key}"
  object.move_to(target)
end

.s3Object



28
29
30
31
32
33
34
35
36
# 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(file_path, options = {}) ⇒ Object



58
59
60
61
62
63
64
65
# File 'lib/fde/s3_client.rb', line 58

def self.upload(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