code: def download(self, url, filename, relative=False, headers=None, timeout=5):
          request_url = self.base_url + url if relative else url
          floyd_logger.debug("Downloading file from url: {}".format(request_url))
          request_headers = {}
          if self.auth_header:
              request_headers["Authorization"] = self.auth_header
          if headers:
              request_headers.update(headers)
          try:
              response = requests.get(request_url,
                                      headers=request_headers,
                                      timeout=timeout,
                                      stream=True)
              self.check_response_status(response)
              with open(filename, 'wb') as f:
                  content_length = response.headers.get('x-floydhub-content-length')
                  if not content_length:
                      content_length = response.headers.get('content-length')
                  if content_length:
                      for chunk in progress.bar(response.iter_content(chunk_size=1024),
                                                expected_size=(int(content_length) / 1024) + 1):
                          if chunk:
                              f.write(chunk)
                  else:
                      for chunk in response.iter_content(chunk_size=1024):
                          if chunk:
                              f.write(chunk)
              return filename
          except requests.exceptions.ConnectionError as exception:
              floyd_logger.debug("Exception: {}".format(exception))
              sys.exit("Cannot connect to the Floyd server. Check your internet connection.")