временный /fetch для проверки egress (Flask -> ВМ)

This commit is contained in:
“Naeel”
2026-08-21 15:06:39 +03:00
parent 428a5c2db9
commit ab9a82a33d
+29
View File
@@ -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 (иначе поднимается второй процесс).