def download_file(): try: url = request.args.get('url') filename = os.path.basename(url) req_ranges = request.headers.get('Range') file_obj = requests.get(url, stream=True, headers={'Range': req_ranges}) headers = file_obj.headers s = Response(generate(file_obj), content_type=headers.get('Content-Type')) for k, v in headers.items(): s.headers[k] = v s.headers['Content-Disposition'] = "attachment; filename={}".format( filename) return s except Exception as e: if file_obj is not None: file_obj.close() Response.close() abort(404)