class_docstr: A AWS S3 obtainer.
  
  download -> extract -> move
  
  Args:
      files (list[dict]): A list of file information.
      cache_path (str): The path to cache the downloaded files.
      data_root (str): The root path of the dataset. It is usually set auto-
          matically and users do not need to set it manually in config file
          in most cases.
      task (str): The task of the dataset. It is usually set automatically
          and users do not need to set it manually in config file
          in most cases.
class_docstr_tok: ["A","AWS","S3","obtainer",".","download","-",">","extract","-",">","move","Args",":","files","(","list","[","dict","]",")",":","A","list","of","file","information",".","cache_path","(","str",")",":","The","path","to","cache","the","downloaded","files",".","data_root","(","str",")",":","The","root","path","of","the","dataset",".","It","is","usually","set","auto-","matically","and","users","do","not","need","to","set","it","manually","in","config","file","in","most","cases",".","task","(","str",")",":","The","task","of","the","dataset",".","It","is","usually","set","automatically","and","users","do","not","need","to","set","it","manually","in","config","file","in","most","cases","."]
docstr: Download file from given s3 url with progress bar.
  
  Args:
      s3_bucket (str): The s3 bucket to download the file.
      s3_object_key (str): The s3 object key to download the file.
      dst_path (str): The destination path to save the file.
docstr_tok: ["Download","file","from","given","s3","url","with","progress","bar",".","Args",":","s3_bucket","(","str",")",":","The","s3","bucket","to","download","the","file",".","s3_object_key","(","str",")",":","The","s3","object","key","to","download","the","file",".","dst_path","(","str",")",":","The","destination","path","to","save","the","file","."]
code: def s3_download(
      self, s3_bucket: str, s3_object_key: str, dst_path: str
  ):
      """Download file from given s3 url with progress bar.
  
      Args:
          s3_bucket (str): The s3 bucket to download the file.
          s3_object_key (str): The s3 object key to download the file.
          dst_path (str): The destination path to save the file.
      """
      meta_data = self.s3_client.head_object(
          Bucket=s3_bucket, Key=s3_object_key
      )
      total_length = int(meta_data.get("ContentLength", 0))
      downloaded = 0
  
      def progress(chunk):
          nonlocal downloaded
          downloaded += chunk
          percent = min(100.0 * downloaded / total_length, 100)
          file_name = osp.basename(dst_path)
          print(f"\rDownloading {file_name}: {percent:.2f}%", end="")
  
      print(f"Downloading {dst_path}")
      self.s3_client.download_file(
          s3_bucket, s3_object_key, dst_path, Callback=progress
      )
  
file_path: mmocr/mmocr/datasets/preparers/obtainers/aws_s3_obtainer.py
imports: import os.path
  import ssl
  from typing import Dict, List, Optional
  from mmengine import mkdir_or_exist
  from mmocr.registry import DATA_OBTAINERS
  from .naive_data_obtainer import NaiveDataObtainer
label_desc: Use image node_id 3 for calling the AWSS3Obtainer obj's underlying member method code with example usage: obj.s3_download(s3_bucket, s3_object_key, dst_path) without return types