code: def chunk_upload_file(self, name, folder_id, file_path,
                              progress_callback=None,
                              chunk_size=1024*1024*1):
          
  
          try:
              return self.__do_chunk_upload_file(name, folder_id, file_path,
                                      progress_callback,
                                      chunk_size)
          except BoxError, ex:
              if ex.status != 401:
                  raise
              #tokens had been refreshed, so we start again the upload
              return self.__do_chunk_upload_file(name, folder_id, file_path,
                                      progress_callback,
                                      chunk_size)
docs: Upload a file chunk by chunk.
  
          The whole file is never loaded in memory.
          Use this function for big file.
  
          The callback(transferred, total) to let you know the upload progress.
          Upload can be cancelled if the callback raise an Exception.
  
          >>> def progress_callback(transferred, total):
          ...    print 'Uploaded %i bytes of %i' % (transferred, total, )
          ...    if user_request_cancel:
          ...       raise MyCustomCancelException()
  
          Args:
              name (str): Name of the file on your Box storage.
  
              folder_id (int): ID of the folder where to upload the file.
  
              file_path (str): Local path of the file to upload.
  
              progress_callback (func): Function called each time a chunk is uploaded.
  
              chunk_size (int): Size of chunks.
  
          Returns:
              dict. Response from Box.
  
          Raises:
              BoxError: An error response is returned from Box (status_code >= 400).
  
              BoxHttpResponseError: Response from Box is malformed.
  
              requests.exceptions.*: Any connection related problem.