def METHOD_NAME(self, url: Optional[str], dst_path: str) -> None:
    """Download file from given url with progress bar.
    Args:
        url (str): The url to download the file.
        dst_path (str): The destination path to save the file.
    """
    if url is None and not osp.exists(dst_path):
        raise FileNotFoundError(
            'Direct url is not available for this dataset.'
            ' Please manually download the required files'
            ' following the guides.')
    if url.startswith('magnet'):
        raise NotImplementedError('Please use any BitTorrent client to '
                                  'download the following magnet link to '
                                  f'{osp.abspath(dst_path)} and '
                                  f'try again.\nLink: {url}')
    print('Downloading...')
    print(f'URL: {url}')
    print(f'Destination: {osp.abspath(dst_path)}')
    print('If you stuck here for a long time, please check your network, '
          'or manually download the file to the destination path and '
          'run the script again.')
    if url.startswith('s3://'):
        url = url[5:]
        bucket, key = self.find_bucket_key(url)
        self.s3_download(bucket, key, osp.abspath(dst_path))
    elif url.startswith('https://') or url.startswith('http://'):
        super().METHOD_NAME(url, dst_path)
    print('')