class_docstr: This class uploads a source file with presigned url to S3.
  
  Attributes
  ----------
  source_file: str
      Source file to upload
  presigned_url: str
      Presigned urls dictionary, with key as part number and values as urls
  retries: int
      Amount of retries when requests encounter an error
  total_size: int
      Size of all files to upload
  name: str
      Name of this upload to display progress
code: def _upload_data(self, s: requests.Session, url: str, data: bytes):
      resp = s.put(url, data=data)
      if "ETag" not in resp.headers:
          raise ValueError(
              f"Unexpected response from {url}, response: {resp.content}"
          )
      return resp.headers["ETag"]
  
file_path: pytorch-lightning/src/lightning/app/source_code/uploader.py
imports: import time
  import requests
  from requests.adapters import HTTPAdapter
  from rich.progress import BarColumn, Progress, TextColumn
  from urllib3.util.retry import Retry
label_desc: Use image node_id 3 for calling the FileUploader obj's underlying member method code with example usage: obj._upload_data(s, url, data) and returns: resp