from fastapi import FastAPI, HTTPException from fastapi.staticfiles import StaticFiles from fastapi.responses import FileResponse import os app = FastAPI() # 挂载 uploads 目录作为静态文件目录 upload_dir = "uploads" if not os.path.exists(upload_dir): os.makedirs(upload_dir) app.mount("/uploads", StaticFiles(directory=upload_dir), name="uploads") # 提供文件下载接口 @app.get("/download/{filename}") async def download_file(filename: str): file_path = os.path.join(upload_dir, filename) if os.path.exists(file_path): return FileResponse(file_path, filename=filename) raise HTTPException(status_code=404, detail="File not found") if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8007)