Class: Jets::AwsServices::S3Bucket
- Inherits:
-
Object
- Object
- Jets::AwsServices::S3Bucket
- Includes:
- Jets::AwsServices
- Defined in:
- lib/jets/aws_services/s3_bucket.rb
Class Method Summary collapse
Instance Method Summary collapse
- #ensure_exists ⇒ Object
- #exists? ⇒ Boolean
-
#initialize(name) ⇒ S3Bucket
constructor
A new instance of S3Bucket.
Methods included from Jets::AwsServices
#apigateway, #aws_lambda, #cfn, #dynamodb, #logs, #s3, #s3_resource, #sns, #sqs, #sts
Methods included from StackStatus
#lookup, #stack_exists?, #stack_in_progress?
Methods included from GlobalMemoist
Constructor Details
#initialize(name) ⇒ S3Bucket
Returns a new instance of S3Bucket.
9 10 11 |
# File 'lib/jets/aws_services/s3_bucket.rb', line 9 def initialize(name) @name = name end |
Class Method Details
.ensure_exists(bucket_name) ⇒ Object
5 6 7 |
# File 'lib/jets/aws_services/s3_bucket.rb', line 5 def self.ensure_exists(bucket_name) new(bucket_name).ensure_exists end |
Instance Method Details
#ensure_exists ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/jets/aws_services/s3_bucket.rb', line 13 def ensure_exists s3.create_bucket(bucket: @name) unless exists? rescue Aws::S3::Errors::BucketAlreadyExists => e puts "ERROR #{e.class}: #{e.}".color(:red) puts "Bucket name: #{@name}" exit 1 end |
#exists? ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/jets/aws_services/s3_bucket.rb', line 21 def exists? begin s3.head_bucket(bucket: @name) true rescue Aws::S3::Errors::BucketAlreadyOwnedByYou, Aws::S3::Errors::Http301Error => e # These exceptions indicate bucket already exists # Aws::S3::Errors::Http301Error could be inaccurate but compromising for simplicity true rescue false end end |