Sha256: 89b7ab5ca227a9ceb3b5adbef5533472141c2e787f4a1a377d1ef22cffdff956

Contents?: true

Size: 926 Bytes

Versions: 4

Compression:

Stored size: 926 Bytes

Contents

require 'aws-sdk'

Aws.use_bundled_cert!

module TerraformDevKit
  # Wrapper class around aws s3
  class S3
    def initialize(credentials, region)
      @s3_client = Aws::S3::Client.new(
        credentials: credentials,
        region: region
      )
    end

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

    def delete_bucket(bucket_name)
      empty_bucket(bucket_name)

      @s3_client.delete_bucket(
        bucket: bucket_name
      )
    end

    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
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
TerraformDevKit-0.2.6 lib/TerraformDevKit/s3.rb
TerraformDevKit-0.2.5 lib/TerraformDevKit/s3.rb
TerraformDevKit-0.2.2 lib/TerraformDevKit/s3.rb
TerraformDevKit-0.2.0 lib/TerraformDevKit/s3.rb