# app/api/v1/upload.py from fastapi import APIRouter, UploadFile, File, HTTPException from services.upload_service import UploadService import uuid router = APIRouter() # Instancier UploadService avec le nom de ton bucket S3 upload_service = UploadService(bucket_name="ton-nom-de-bucket") @router.post("/") async def upload_file(file: UploadFile = File(...)): # Générer un nom de fichier unique file_extension = file.filename.split(".")[-1] # Récupérer l'extension du fichier unique_filename = f"{uuid.uuid4()}.{file_extension}" # Générer un nom unique try: # Lire le contenu du fichier de manière asynchron file_content = await file.read() # Uploader le fichier sur S3 file_url = upload_service.upload_file(file_content, unique_filename) # Retourner l'URL du fichier uploadé return {"file_url": file_url} except Exception as e: # Gérer les erreurs raise HTTPException(status_code=500, detail=str(e))