Files
upload-platform/site/app.py
T

44 lines
1.5 KiB
Python

import json
from pathlib import Path
from flask import Flask, render_template, send_from_directory
ROOT = Path(__file__).resolve().parent.parent
# Конфигурация демо содержит только разрешённые расширения для browser picker.
with (ROOT / "config.json").open(encoding="utf-8") as config_file:
CONFIG = json.load(config_file)
VERSION = "0.1.11"
# Flask нужен здесь только как статический сервер HTML, CSS и ES-модулей.
app = Flask(__name__, template_folder="templates", static_folder="static")
@app.route("/")
def index():
"""Возвращает demo-страницу и передаёт в неё версию и JSON-конфигурацию."""
return render_template("index.html", version=VERSION, config=CONFIG)
@app.route("/health")
def health():
"""Возвращает 200 для liveness-проверки платформы."""
return "ok", 200
@app.get("/upload-frontend/<path:filename>")
def upload_frontend(filename):
"""Отдаёт один frontend-файл из изолированного каталога upload/frontend."""
return send_from_directory(ROOT / "upload" / "frontend", filename)
@app.get("/file-picker/<path:filename>")
def file_picker_dist(filename):
"""Отдаёт собранный универсальный picker-бандл из каталога dist."""
return send_from_directory(ROOT / "dist", filename)
if __name__ == "__main__":
app.run(debug=False, host="0.0.0.0", port=5000)