code: def _upload_part(api, session, url, upload, part_number, part, retry_count,
                   timeout):
      
      part_url = retry(retry_count)(_get_part_url)(
          api, url, upload, part_number
      )
  
      e_tag = retry(retry_count)(_submit_part)(
          session, part_url, part, timeout
      )
  
      retry(retry_count)(_report_part)(api, url, upload, part_number, e_tag)
docs: Used by the worker to upload a part to the storage service.
      :param api: Api instance.
      :param session: Storage service session.
      :param url: Part url.
      :param upload: Upload identifier.
      :param part_number: Part number.
      :param part: Part data.
      :param retry_count: Number of times to retry.
      :param timeout: Timeout for storage session.