Class: TerraformDevKit::Aws::S3

Inherits:
Object
  • Object
show all
Defined in:
lib/TerraformDevKit/aws/s3.rb

Instance Method Summary collapse

Constructor Details

#initialize(credentials, region) ⇒ S3

Returns a new instance of S3.



8
9
10
11
12
13
# File 'lib/TerraformDevKit/aws/s3.rb', line 8

def initialize(credentials, region)
  @s3_client = ::Aws::S3::Client.new(
    credentials: credentials,
    region: region
  )
end

Instance Method Details

#create_bucket(bucket_name) ⇒ Object



15
16
17
18
19
# File 'lib/TerraformDevKit/aws/s3.rb', line 15

def create_bucket(bucket_name)
  @s3_client.create_bucket(
    bucket: bucket_name
  )
end

#delete_bucket(bucket_name) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/TerraformDevKit/aws/s3.rb', line 21

def delete_bucket(bucket_name)
  empty_bucket(bucket_name)

  @s3_client.delete_bucket(
    bucket: bucket_name
  )
end

#empty_bucket(bucket_name) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/TerraformDevKit/aws/s3.rb', line 29

def empty_bucket(bucket_name)
  keys_to_delete = @s3_client
                  .list_objects_v2(bucket: bucket_name)
                  .contents
                  .map { |x| { key: x.key } }

  @s3_client.delete_objects(
    bucket: bucket_name,
    delete: {
      objects: keys_to_delete
    }
  )
end