Sha256: 24f6f27839e9a0be86c532cf352731d7da6f7ddd94612867c9d3823a4c49d956

Contents?: true

Size: 1.51 KB

Versions: 38

Compression:

Stored size: 1.51 KB

Contents

# frozen_string_literal: true

module Aws
  module S3
    module Errors
      # Hijack PermanentRedirect dynamic error to include the bucket, region,
      # and endpoint.
      class PermanentRedirect < ServiceError
        # @param [Seahorse::Client::RequestContext] context
        # @param [String] message
        # @param [Aws::S3::Types::PermanentRedirect] _data
        def initialize(context, message, _data = Aws::EmptyStructure.new)
          data = Aws::S3::Types::PermanentRedirect.new(message: message)
          body = context.http_response.body_contents
          if (endpoint = body.match(/<Endpoint>(.+?)<\/Endpoint>/))
            data.endpoint = endpoint[1]
          end
          if (bucket = body.match(/<Bucket>(.+?)<\/Bucket>/))
            data.bucket = bucket[1]
          end
          data.region = context.http_response.headers['x-amz-bucket-region']
          super(context, message, data)
        end
      end

      # Hijack PermanentRedirect (HeadBucket case - no body) dynamic error to
      # include the region.
      class Http301Error < ServiceError
        # @param [Seahorse::Client::RequestContext] context
        # @param [String] message
        # @param [Aws::S3::Types::PermanentRedirect] _data
        def initialize(context, message, _data = Aws::EmptyStructure.new)
          data = Aws::S3::Types::PermanentRedirect.new(message: message)
          data.region = context.http_response.headers['x-amz-bucket-region']
          super(context, message, data)
        end
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
aws-sdk-s3-1.182.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.181.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.180.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.179.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.178.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.177.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.176.1 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.176.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.175.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.174.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.173.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.172.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.171.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.170.1 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.170.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.169.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.168.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.167.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.166.0 lib/aws-sdk-s3/customizations/errors.rb
aws-sdk-s3-1.165.0 lib/aws-sdk-s3/customizations/errors.rb