code: def canonical_request(self, method, path, content, timestamp):
          
          request = collections.OrderedDict([
              ('Method', method.upper()),
              ('Hashed Path', path),
              ('X-Ops-Content-Hash', content),
              ('X-Ops-Timestamp', timestamp),
              ('X-Ops-UserId', self.user_id),
          ])
          return '\n'.join(['%s:%s' % (key, value)
                            for key, value in request.items()])
docs: Return the canonical request string.