34 lines
799 B
Python
34 lines
799 B
Python
import uvicorn
|
|
from fastapi import FastAPI
|
|
from fastapi.staticfiles import StaticFiles
|
|
from file_cleaner import FileCleaner
|
|
from settings import settings
|
|
import asyncio
|
|
|
|
app = FastAPI(
|
|
title="www",
|
|
description="公共静态资源访问服务",
|
|
version="1.0.0"
|
|
)
|
|
|
|
# 挂载静态文件目录
|
|
app.mount("/files", StaticFiles(directory="files"), name="files")
|
|
|
|
|
|
# 注册文件定时清理任务
|
|
save_dir = "files"
|
|
retention_hours = settings.file_retention_hours
|
|
cleaner = FileCleaner(save_dir, retention_hours)
|
|
|
|
@app.on_event("startup")
|
|
async def startup_event():
|
|
asyncio.create_task(cleaner.periodic_cleanup())
|
|
|
|
if __name__ == "__main__":
|
|
import uvicorn
|
|
uvicorn.run(
|
|
"app:app",
|
|
host=settings.host,
|
|
port=settings.port,
|
|
reload=settings.debug
|
|
) |