def download_by_batch_id(): import os batch_id = request.values.get("batch_id") if batch_id: try: root = file_process.get_file_root(batch_id) except NotADirectoryError as e: debug_logger.log(e) return json.dumps({"error": "batch_id doesn't exist"}) print("[Backend Download] BatchID = " + batch_id) for rt, dirs, files in os.walk(root): for file in files: response = make_response( send_from_directory(root, file, as_attachment=True, attachment_filename=file)) response.headers[ "Content-Disposition"] = "attachment; filename={}".format( file.encode().decode('latin-1')) return response return render_template('error_code/404.html')
def url_visit(alias): print("[Url-Visit] " + alias) if is_alias_exist(alias): visit_type = alias_type(alias) if visit_type == "URL": try: response = requests.get(router_gen.get_real_location( "http", "api", "/get_url"), params={ "alias": alias }, timeout=5).text print("[url_visit]" + alias + " -> " + response) if not response == "URL_NOT_EXIST": print(response) response_page = render_template('link_redirect.html', target=response) else: response_page = render_template('error_code/404.html') print("[url_visit]OK") except requests.ReadTimeout: response_page = render_template('error_code/503.html') return response_page elif visit_type == "FILE": print(" Type: File") import os batch_id = all_files.get_file_obj_by_alias(alias)[0].batch_id root = file_process.get_file_root(batch_id) print(" Location: " + root) for rt, dirs, files in os.walk(root): for file in files: response = make_response( send_from_directory(root, file, as_attachment=True, attachment_filename=file)) response.headers[ "Content-Disposition"] = "attachment; filename={}".format( file.encode().decode('latin-1')) return response return "None" else: return render_template('error_code/404.html')
def file_info(): import os from utils import platform batch_id = request.values.get("batch_id") if batch_id: try: root = file_process.get_file_root(batch_id) except NotADirectoryError as e: debug_logger.log(e) return json.dumps({"error": "batch_id doesn't exist"}) files = [ name for name in os.listdir(root) if os.path.isfile(os.path.join(root, name)) ] files_count = len(files) # First file only, prepared for multi file download file_name = files[0] file_obj = all_files.get_file_obj_by_batch_id(batch_id)[0] assert isinstance(file_obj, FileLink) time_remain = int(file_obj.time_remain()) if platform.is_linux(): file_size = int(os.path.getsize(root + "/" + file_name) / 1024) else: file_size = int(os.path.getsize(root + "\\" + file_name) / 1024) return json.dumps({ "file_name": file_name, "time_remain": time_remain, "file_size": file_size, "files_count": files_count }) return json.dumps({"error": "batch_id not provided"})
def url_visit_test(alias): print("[Url-Visit] " + alias) if is_alias_exist(alias): visit_type = alias_type(alias) if visit_type == "URL": try: response = requests.get(router_gen.get_real_location( "http", "api", "/get_url"), params={ "alias": alias }, timeout=5).text print("[url_visit]" + alias + " -> " + response) if not response == "URL_NOT_EXIST": response_page = render_template('link_redirect.html', target=response) print(response_page) else: response_page = render_template('error_code/404.html') print("[url_visit]OK") except requests.ReadTimeout: response_page = render_template('error_code/503.html') return response_page elif visit_type == "FILE": print(" Type: File") import os batch_id = all_files.get_file_obj_by_alias(alias)[0].batch_id root = file_process.get_file_root(batch_id) print(" Location: " + root) return render_template('file_redirect.html', batch_id=batch_id) else: return render_template('error_code/404.html')