Sha256: 175f65ff4323a74790ee300ecdeeb6fd63a0295863329f0e9f23257006f8470a

Contents?: true

Size: 1.15 KB

Versions: 148

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module Aws
  module S3
    module Plugins
      class Redirects < Seahorse::Client::Plugin

        option(:follow_redirects,
          default: true,
          doc_type: 'Boolean',
          docstring: <<-DOCS)
When `true`, this client will follow 307 redirects returned
by Amazon S3.
          DOCS

        # @api private
        class Handler < Seahorse::Client::Handler

          def call(context)
            response = @handler.call(context)
            if context.http_response.status_code == 307
              endpoint = context.http_response.headers['location']
              unless context.http_request.endpoint.host.include?('fips')
                context.http_request.endpoint = endpoint
              end
              context.http_response.body.truncate(0)
              @handler.call(context)
            else
              response
            end
          end

        end

        def add_handlers(handlers, config)
          if config.follow_redirects
            # we want to re-trigger request signing
            handlers.add(Handler, step: :sign, priority: 90)
          end
        end

      end
    end
  end
end

Version data entries

148 entries across 148 versions & 1 rubygems

Version Path
aws-sdk-s3-1.128.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.127.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.126.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.125.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.124.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.123.2 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.123.1 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.123.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.122.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.121.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.120.1 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.120.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.119.2 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.119.1 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.119.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.118.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.117.2 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.117.1 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.117.0 lib/aws-sdk-s3/plugins/redirects.rb
aws-sdk-s3-1.116.0 lib/aws-sdk-s3/plugins/redirects.rb