Uploads médias
Tous les uploads transitent par le backend (scan AV + validation) avant d’atterrir sur Cloudflare R2.Matrice des médias
| Média | Bucket | Rôle | Formats | Taille max | Ratio |
|---|---|---|---|---|---|
| Logo entreprise | public | OWNER | PNG, JPG | 2 Mo | carré |
| Bannière entreprise | public | OWNER | JPG | 5 Mo | 16:9 |
| Photo staff | public | OWNER | JPG | 3 Mo | 4:3 |
| Photo profil candidat | public | CANDIDAT | PNG, JPG | 1 Mo | carré |
| CV candidat | private | CANDIDAT | 5 Mo | — | |
| Cover blog | public | ADMIN | JPG, WebP | 5 Mo | 16:9 |
| KYC | private | RECRUTEUR | PDF, JPG | 10 Mo | — |
Pipeline général
1. Logo entreprise
2. Bannière entreprise
Ratio imposé 16:9 (erreur 422 sinon).3. Photos staff
Jusqu’à 10 photos par entreprise.Réorganiser
Supprimer
4. Photo profil candidat
5. CV candidat (privé)
Voir URLs pré-signées pour les règles d’accès.6. Cover blog (admin)
| Variant | Taille | Usage |
|---|---|---|
cover-1920.webp | 1920×1080 | Desktop full width |
cover-1200.webp | 1200×675 | Tablet |
cover-600.webp | 600×338 | Mobile / cards |
7. Gestion des erreurs
8. Quotas de stockage
| Rôle | Quota total | Retry après dépassement |
|---|---|---|
| CANDIDAT | 50 Mo | Supprimer anciens uploads |
| RECRUTEUR (OWNER) | 100 Mo entreprise | Idem ou upgrade plan |
| ADMIN | Illimité | — |
9. URLs signées (fichiers privés)
Pour les CV et KYC, utiliser :10. Suppression
files_metadata.status=DELETED. Pas de corbeille.