class Aws::S3::Plugins::Accelerate::AccelerateHandler
@api private
Public Instance Methods
call(context)
click to toggle source
# File lib/aws-sdk-s3/plugins/accelerate.rb, line 56 def call(context) if context.config.regional_endpoint && context[:use_accelerate_endpoint] dualstack = !!context[:use_dualstack_endpoint] use_accelerate_endpoint(context, dualstack) end @handler.call(context) end
Private Instance Methods
use_accelerate_endpoint(context, dualstack)
click to toggle source
# File lib/aws-sdk-s3/plugins/accelerate.rb, line 66 def use_accelerate_endpoint(context, dualstack) bucket_name = context.params[:bucket] validate_bucket_name!(bucket_name) endpoint = URI.parse(context.http_request.endpoint.to_s) endpoint.scheme = 'https' endpoint.port = 443 endpoint.host = "#{bucket_name}.s3-accelerate"\ "#{'.dualstack' if dualstack}.amazonaws.com" context.http_request.endpoint = endpoint.to_s # s3 accelerate endpoint doesn't work with 'expect' header context.http_request.headers.delete('expect') end
validate_bucket_name!(bucket_name)
click to toggle source
# File lib/aws-sdk-s3/plugins/accelerate.rb, line 79 def validate_bucket_name!(bucket_name) unless BucketDns.dns_compatible?(bucket_name, _ssl = true) raise ArgumentError, 'Unable to use `use_accelerate_endpoint: true` on buckets '\ 'with non-DNS compatible names.' end end