code: def _download_urls(url_list, storage_folder, overwrite_existing,
                     meta_handler, access_cookie=None):
      
      for url in url_list:
          filename = os.path.basename(url)
          if not overwrite_existing and filename in os.listdir(storage_folder):
              continue
          storage_file = os.path.join(storage_folder, filename)
  
          # Using requests here - tried with aiohttp but was actually slower
          # Also don’t use shutil.copyfileobj - corrupts zips from Eora
          req = requests.post(url, stream=True, cookies=access_cookie)
          with open(storage_file, 'wb') as lf:
              for chunk in req.iter_content(1024*5):
                  lf.write(chunk)
  
          meta_handler._add_fileio('Downloaded {} to {}'.format(url, filename))
          meta_handler.save()
  
      return meta_handler
docs: Save url from url_list to storage_folder
  
      Parameters
      ----------
      url_list: list of str
          Valid url to download
  
      storage_folder: str, valid path
          Location to store the download, folder will be created if
          not existing. If the file is already present in the folder,
          the download depends on the setting in 'overwrite_existing'.
  
      overwrite_existing: boolean, optional
          If False, skip download of file already existing in
          the storage folder (default). Set to True to replace
          files.
  
      meta_handler: instance of MRIOMetaData
  
      Returns
      -------
  
      The meta_handler is passed back