Spaces:
Running
Running
| from fastapi import FastAPI | |
| from apscheduler.schedulers.asyncio import AsyncIOScheduler | |
| from .routes import file_routes | |
| from . import create_app | |
| from .services.storage_service import StorageService | |
| import logging | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| app = create_app() | |
| storage_service = StorageService() | |
| # Register routes | |
| app.include_router(file_routes.router, prefix="/api") | |
| # Set up scheduler for cleanup | |
| scheduler = AsyncIOScheduler() | |
| async def startup_event(): | |
| logger.info("Starting up the application") | |
| scheduler.add_job(storage_service.cleanup_expired_files, 'interval', minutes=1, id='cleanup_job') | |
| scheduler.start() | |
| logger.info("Scheduler started") | |
| async def root(): | |
| return {"message": "File Sharing API with auto-cleanup"} | |
| # Handle shutdown | |
| async def shutdown_event(): | |
| logger.info("Shutting down the application") | |
| scheduler.shutdown() | |
| logger.info("Scheduler shut down") | |
| if __name__ == "__main__": | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=7860) |