Class: Aws::Plugins::TransferEncoding::Handler Private

Inherits:
Seahorse::Client::Handler show all
Defined in:
lib/aws-sdk-core/plugins/transfer_encoding.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

API:

  • private

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Handler

#handler

Instance Method Summary collapse

Methods inherited from Seahorse::Client::Handler

#initialize, #inspect

Constructor Details

This class inherits a constructor from Seahorse::Client::Handler

Instance Method Details

#call(context) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/aws-sdk-core/plugins/transfer_encoding.rb', line 14

def call(context)
  if streaming?(context.operation.input)
    # If it's an IO object and not a File / String / String IO
    unless context.http_request.body.respond_to?(:size)
      if requires_length?(context.operation.input)
        # if size of the IO is not available but required
        raise Aws::Errors::MissingContentLength
      elsif unsigned_payload?(context.operation)
        context.http_request.headers['Transfer-Encoding'] = 'chunked'
      end
    end
  end

  @handler.call(context)
end