Настраиваемый BASE_URL для share-ссылок и поддержка HTTPS (CERT_FILE/KEY_FILE)
This commit is contained in:
1 parent
f11ec6298d
commit
0cb2c5e41a
3 files changed
+28
-8
No files matched your search
@@ -99,6 +99,11 @@ VIDEO_MIME = {
|
||||
app = Flask(__name__)
|
||||
app.config["MAX_CONTENT_LENGTH"] = 100 * 1024 * 1024 # 100 МБ
|
||||
|
||||
# Базовый URL для share-ссылок и OG-тегов.
|
||||
# По умолчанию — прод-домен; для локального запуска задайте BASE_URL,
|
||||
# например https://192.168.31.248:18018
|
||||
BASE_URL = os.environ.get("BASE_URL", "https://med.my-dpr.ru").rstrip("/")
|
||||
|
||||
# CORS для интеграции с WordPress (кросс-доменные запросы с сайта на API).
|
||||
# Список разрешённых origin через запятую, по умолчанию "*" (любой).
|
||||
CORS_ORIGINS = [o.strip() for o in os.environ.get("CORS_ORIGINS", "*").split(",") if o.strip()]
|
||||
@@ -381,10 +386,10 @@ def shared_result(share_id):
|
||||
"""Публичная страница результата по ссылке (с OG-тегами для соцсетей)."""
|
||||
result = storage.get_result(share_id)
|
||||
if result is None:
|
||||
return render_template("result.html", result=None, error="Результат не найден", video_exists=False), 404
|
||||
return render_template("result.html", result=None, error="Результат не найден", video_exists=False, base_url=BASE_URL), 404
|
||||
|
||||
video_exists = bool(glob.glob(os.path.join(VIDEO_DIR, f"{share_id}.*")))
|
||||
return render_template("result.html", result=result, error=None, video_exists=video_exists)
|
||||
return render_template("result.html", result=result, error=None, video_exists=video_exists, base_url=BASE_URL)
|
||||
|
||||
|
||||
@app.route("/download/<share_id>/pdf")
|
||||
@@ -509,7 +514,7 @@ def analyze():
|
||||
# 6. Сохранение результата
|
||||
logger.info(f"[{job_id}] Сохранение результата")
|
||||
share_id = storage.save_result(interpretation, result)
|
||||
share_url = f"https://med.my-dpr.ru/r/{share_id}"
|
||||
share_url = f"{BASE_URL}/r/{share_id}"
|
||||
logger.info(f"[{job_id}] Результат сохранён: {share_url}")
|
||||
|
||||
# Переименовываем видео под share_id (чтобы ссылка была стабильной)
|
||||
@@ -551,4 +556,14 @@ if __name__ == "__main__":
|
||||
print("🩺 Диагностика по видео — ФПГ")
|
||||
print(f"Откройте в браузере: http://localhost:5000")
|
||||
print("=" * 60)
|
||||
app.run(host="0.0.0.0", port=18018, debug=False)
|
||||
|
||||
# HTTPS (для доступа к камере из локальной сети нужен безопасный контекст).
|
||||
# Задайте CERT_FILE и KEY_FILE (самоподписанный сертификат) — сервер поднимется по HTTPS.
|
||||
cert_file = os.environ.get("CERT_FILE")
|
||||
key_file = os.environ.get("KEY_FILE")
|
||||
ssl_context = None
|
||||
if cert_file and key_file:
|
||||
ssl_context = (cert_file, key_file)
|
||||
print(f"HTTPS включён: {cert_file}")
|
||||
|
||||
app.run(host="0.0.0.0", port=18018, debug=False, ssl_context=ssl_context)
|
||||
Reference in new issue
Block a user