After_Chido_Api/api/v1/uploads.py

28 lines
1001 B
Python

# 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))