'Select the headers from the request that need to be included
in the StringToSign.'

def headers_to_sign(self, request):

    header_map = HTTPHeaders()
    split = urlsplit(request.url)
    for (name, value) in request.headers.items():
        lname = name.lower()
        if (lname not in SIGNED_HEADERS_BLACKLIST):
            header_map[lname] = value
    if ('host' not in header_map):
        header_map['host'] = split.netloc
    return header_map
