- log.append(("INFO", " Downloading the file '{0}' to '{1}' ...".
- format(url, file_name)))
- session = requests_retry_session()
- response = session.get(url, stream=True)
- if response.status_code == codes["OK"]:
- with open(file_name, "wb") as file_handle:
- file_handle.write(response.raw.read())
- else:
- log.append(("ERROR", "Not possible to download the file '{0}' "
- "to '{1}' ...".format(url, file_name)))
-
- success = True
- except ConnectionError as err:
- log.append(("ERROR", "Not possible to connect to '{0}'.".format(url)))
- log.append(("DEBUG", repr(err)))
- except HTTPError as err:
- log.append(("ERROR", "Invalid HTTP response from '{0}'.".format(url)))
- log.append(("DEBUG", repr(err)))
- except TooManyRedirects as err:
- log.append(("ERROR", "Request exceeded the configured number "
- "of maximum re-directions."))
- log.append(("DEBUG", repr(err)))
- except Timeout as err:
- log.append(("ERROR", "Request timed out."))
- log.append(("DEBUG", repr(err)))
- except RequestException as err:
- log.append(("ERROR", "Unexpected HTTP request exception."))
- log.append(("DEBUG", repr(err)))
- except (IOError, ValueError, KeyError) as err:
- log.append(("ERROR", "Download failed."))
- log.append(("DEBUG", repr(err)))
- finally:
- if session:
- session.close()
-
- log.append(("INFO", " Download finished."))