Fix: Staging MEDIA_DIR=/prod-media direkt (kein Symlink-Umweg), SW by-v603
This commit is contained in:
parent
f76f3d7056
commit
c9e7e50bf4
4 changed files with 4 additions and 23 deletions
|
|
@ -48,7 +48,6 @@ async def lifespan(app: FastAPI):
|
|||
init_db()
|
||||
from routes.movies import seed_movies
|
||||
seed_movies()
|
||||
_link_prod_media()
|
||||
logger.info(f"KI-Modus: {ki.KI_MODE}")
|
||||
sched.start()
|
||||
yield
|
||||
|
|
@ -280,27 +279,10 @@ app.mount("/icons", StaticFiles(directory=f"{STATIC_DIR}/icons"), name="icons")
|
|||
app.mount("/img", StaticFiles(directory=f"{STATIC_DIR}/img"), name="img")
|
||||
|
||||
# User-generierte Medien (Fotos aus Tagebuch, Giftköder-Alarm, etc.)
|
||||
MEDIA_DIR = os.getenv("MEDIA_DIR", "/data/media")
|
||||
PROD_MEDIA_DIR = os.getenv("PROD_MEDIA_DIR", "") # Staging-only: Production-Media einlinken
|
||||
MEDIA_DIR = os.getenv("MEDIA_DIR", "/data/media")
|
||||
os.makedirs(MEDIA_DIR, exist_ok=True)
|
||||
app.mount("/media", StaticFiles(directory=MEDIA_DIR), name="media")
|
||||
|
||||
|
||||
def _link_prod_media():
|
||||
"""Staging: symlinkt Production-Media-Verzeichnisse in das Staging-Media-Verzeichnis."""
|
||||
if not PROD_MEDIA_DIR or not os.path.isdir(PROD_MEDIA_DIR):
|
||||
return
|
||||
import pathlib
|
||||
staging = pathlib.Path(MEDIA_DIR)
|
||||
for item in pathlib.Path(PROD_MEDIA_DIR).iterdir():
|
||||
link = staging / item.name
|
||||
if not link.exists() and not link.is_symlink():
|
||||
try:
|
||||
link.symlink_to(item)
|
||||
logger.info(f"Prod-Media verlinkt: {link} → {item}")
|
||||
except OSError as e:
|
||||
logger.warning(f"Symlink fehlgeschlagen {link}: {e}")
|
||||
|
||||
@app.get("/robots.txt")
|
||||
async def robots():
|
||||
return FileResponse(f"{STATIC_DIR}/robots.txt", media_type="text/plain")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue