'Constructor. Instantiate once for each uploaded file.
:type tracker_file_name: string
:param tracker_file_name: optional file name to save tracker URI.
If supplied and the current process fails the upload, it can be
retried in a new process. If called with an existing file containing
a valid tracker URI, we\'ll resume the upload from this URI; else
we\'ll start a new resumable upload (and write the URI to this
tracker file).
:type num_retries: int
:param num_retries: the number of times we\'ll re-try a resumable upload
making no progress. (Count resets every time we get progress, so
upload can span many more than this number of retries.)'

def __init__(self, tracker_file_name=None, num_retries=None):

    self.tracker_file_name = tracker_file_name
    self.num_retries = num_retries
    self.server_has_bytes = 0
    self.tracker_uri = None
    if tracker_file_name:
        self._load_tracker_uri_from_file()
    self.upload_start_point = None
