code: def download_file(
      self, remote_filepath: str, local_filepath: str
  ) -> None:
      obj = parse.urlparse(remote_filepath)
  
      if obj.scheme != "s3":
          raise ValueError(
              f"Expected obj.scheme to be `s3`, instead, got {obj.scheme} for remote={remote_filepath}"
          )
  
      from boto3.s3.transfer import TransferConfig
  
      extra_args: Dict[str, Any] = {}
  
      # Issue: https://github.com/boto/boto3/issues/3113
      self._client.client.download_file(
          obj.netloc,
          obj.path.lstrip("/"),
          local_filepath,
          ExtraArgs=extra_args,
          Config=TransferConfig(use_threads=False),
      )
  
file_path: pytorch-lightning/src/lightning/data/streaming/downloader.py
imports: import os
  import shutil
  from abc import ABC
  from typing import Any, Dict, List
  from urllib import parse
  from lightning.data.streaming.client import S3Client
label_desc: Use image node_id 2 for calling the S3Downloader obj's underlying member method code with example usage: obj.download_file(remote_filepath, local_filepath) without return types