code: def _set_tracker_uri(self, uri):
          
          parse_result = urlparse.urlparse(uri)
          if (parse_result.scheme.lower() not in ['http', 'https'] or
              not parse_result.netloc or not parse_result.query):
              raise InvalidUriError('Invalid tracker URI (%s)' % uri)
          qdict = cgi.parse_qs(parse_result.query)
          if not qdict or not 'upload_id' in qdict:
              raise InvalidUriError('Invalid tracker URI (%s)' % uri)
          self.tracker_uri = uri
          self.tracker_uri_host = parse_result.netloc
          self.tracker_uri_path = '%s/?%s' % (parse_result.netloc,
                                              parse_result.query)
          self.server_has_bytes = 0
docs: Called when we start a new resumable upload or get a new tracker
          URI for the upload. Saves URI and resets upload state.
  
          Raises InvalidUriError if URI is syntactically invalid.