class Aws::Plugins::TransferEncoding::Handler
@api private
def call(context)
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
def requires_length?(ref)
def requires_length?(ref) if (payload = ref[:payload_member]) payload['requiresLength'] || payload.shape['requiresLength'] else false end end
def streaming?(ref)
def streaming?(ref) if (payload = ref[:payload_member]) payload['streaming'] || payload.shape['streaming'] else false end end
def unsigned_payload?(operation)
def unsigned_payload?(operation) operation['unsignedPayload'] || operation['authtype'] == 'v4-unsigned-body' end