code: def string_to_sign(self, http_request):
          
          headers_to_sign = self.headers_to_sign(http_request)
          canonical_headers = self.canonical_headers(headers_to_sign)
          string_to_sign = '\n'.join([http_request.method,
                                      http_request.path,
                                      '',
                                      canonical_headers,
                                      '',
                                      http_request.body])
          return string_to_sign, headers_to_sign
docs: Return the canonical StringToSign as well as a dict
          containing the original version of all headers that
          were included in the StringToSign.