class Aws::S3::Plugins::BucketNameRestrictions::Handler
Public Instance Methods
call(context)
click to toggle source
Useful because Aws::S3::Errors::SignatureDoesNotMatch is thrown when passed a bucket with a forward slash. Instead provide a more helpful error. Ideally should not be a plugin?
# File lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb, line 13 def call(context) bucket_member = _bucket_member(context.operation.input.shape) if bucket_member && (bucket = context.params[bucket_member]) _resolved_region, arn = ARN.resolve_arn!( bucket, context.config.region, context.config.s3_use_arn_region ) if !arn && bucket.include?('/') raise ArgumentError, 'bucket name must not contain a forward-slash (/)' end end @handler.call(context) end
Private Instance Methods
_bucket_member(input)
click to toggle source
# File lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb, line 31 def _bucket_member(input) input.members.each do |member, ref| return member if ref.shape.name == 'BucketName' end nil end