diff --git a/site/app.py b/site/app.py index 8896d8a..ffd976b 100644 --- a/site/app.py +++ b/site/app.py @@ -140,6 +140,35 @@ def messages(): return jsonify(result) +@app.route("/fetch") +def fetch_url(): + """ВРЕМЕННЫЙ: исходящий GET по URL (проверка egress из кластера). + + Нужен для проверки схемы «Flask сам тянет большой файл с ВМ». + Делает GET по переданному url и возвращает HTTP-статус + размер ответа. + """ + import requests + + url = request.args.get("url", "") + if not url: + return jsonify({"ok": False, "error": "нет параметра url"}), 400 + + t0 = time.time() + try: + r = requests.get(url, timeout=120) + size = len(r.content) + return jsonify({ + "ok": True, + "url": url, + "status": r.status_code, + "size_bytes": size, + "size_mb": round(size / (1024 * 1024), 3), + "total_ms": round((time.time() - t0) * 1000, 2), + }) + except Exception as e: + return jsonify({"ok": False, "error": type(e).__name__ + ": " + str(e), "url": url}), 502 + + if __name__ == "__main__": # ОБЯЗАТЕЛЬНО для платформы: `python site/app.py` должен стартовать сервер. # debug=False - прод-режим, без reloader (иначе поднимается второй процесс).