from fastapi import FastAPI, HTTPException from fastapi.responses import FileResponse, HTMLResponse from fastapi.staticfiles import StaticFiles import uvicorn import os PORT = 8051 DIRECTORY = "./data/db" # Ensure the data directory exists (if not already handled elsewhere) os.makedirs(DIRECTORY, exist_ok=True) app = FastAPI() # Mount static files to serve content from the database directory app.mount("/data", StaticFiles(directory=DIRECTORY), name="data") app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/files", response_class=HTMLResponse) async def list_files(): files_html = "" for root, _, files in os.walk(DIRECTORY): for file in files: file_path = os.path.join(root, file) relative_path = os.path.relpath(file_path, DIRECTORY) try: file_size = os.path.getsize(file_path) # convert to GB file_size = file_size / (1024 * 1024 * 1024) files_html += f"""
Welcome to the Market Data Server.
Access database files directly via /data/your_file.db
""") if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=PORT)