Files
web-page-backend/packs-lab/app/main.py

37 lines
1.0 KiB
Python

"""packs-lab FastAPI application.
NAS 자료 다운로드 자동화 — DSM 공유 링크 발급 + 5GB 멀티파트 업로드 수신.
모든 Vercel 호출은 HMAC 인증. 사용자 다운로드는 Vercel이 supabase 인증 후 프록시.
"""
import logging
import os
from contextlib import asynccontextmanager
from fastapi import FastAPI
logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(name)s] %(levelname)s %(message)s")
logger = logging.getLogger("packs-lab")
@asynccontextmanager
async def lifespan(app: FastAPI):
# DSM credentials presence check
for key in ("DSM_HOST", "DSM_USER", "DSM_PASS", "BACKEND_HMAC_SECRET"):
if not os.getenv(key):
logger.warning("환경변수 %s 미설정 — packs-lab 일부 기능 작동 안 함", key)
logger.info("packs-lab 시작")
yield
app = FastAPI(lifespan=lifespan, title="packs-lab", version="1.0.0")
@app.get("/health")
def health():
return {"status": "ok", "service": "packs-lab"}
from . import routes # noqa: E402
app.include_router(routes.router)