code: def upload(self, stop_at=None):
          
          self.stop_at = stop_at or self.file_size
  
          while self.offset < self.stop_at:
              self.upload_chunk()
          else:
              if self.log_func:
                  self.log_func("maximum upload specified({} bytes) has been reached".format(self.stop_at))
docs: Perform file upload.
  
          Performs continous upload of chunks of the file. The size uploaded at each cycle is
          the value of the attribute 'chunk_size'.
  
          :Args:
              - stop_at (Optional[int]):
                  Determines at what offset value the upload should stop. If not specified this
                  defaults to the file size.