Upload de fichiers
Les fichiers (CV, photo, logo) sont stockés sur Cloudflare R2 (compatible S3) en production. Côté dev, MinIO local est utilisé.
Types de fichiers supportés
| Type | Formats | Taille max | Bucket |
|---|
| CV | PDF, DOCX | 5 Mo | private |
| Photo profil | JPG, PNG, WEBP | 2 Mo | public |
| Logo entreprise | JPG, PNG, SVG | 2 Mo | public |
| Document KYC (recruteur) | PDF, JPG, PNG | 5 Mo | private |
Taille globale maximale par requête : 10 Mo.
Upload d’un CV (candidat)
curl -X POST https://api.wethehivers.com/v1/api/candidats/me/cv \
-H "Authorization: Bearer <token-candidat>" \
-F "file=@cv.pdf"
Réponse :
{
"cvId": 17,
"fileName": "cv.pdf",
"fileSize": 324512,
"uploadedAt": "2026-04-18T14:30:00Z",
"downloadUrl": "https://api.wethehivers.com/v1/api/files/cv/17"
}
Le CV est stocké dans le bucket privé. L’URL de téléchargement est signée et expire après 15 minutes. Elle est régénérée à chaque appel.
Upload d’une photo de profil
curl -X POST https://api.wethehivers.com/v1/api/candidats/me/photo \
-H "Authorization: Bearer <token-candidat>" \
-F "file=@photo.jpg"
La photo est redimensionnée côté serveur en 3 tailles (64px, 256px, 1024px) et servie depuis le CDN Cloudflare.
Upload d’un logo d’entreprise
Réservé au recruteur rattaché à l’entreprise :
curl -X POST https://api.wethehivers.com/v1/api/entreprises/me/logo \
-H "Authorization: Bearer <token-recruteur>" \
-F "file=@logo.png"
Téléchargement
Pour les fichiers privés (CV, KYC), l’API renvoie une URL pré-signée valable 15 minutes :
curl https://api.wethehivers.com/v1/api/files/cv/17 \
-H "Authorization: Bearer <token>"
{
"url": "https://storage.wethehivers.com/private/cv/17.pdf?X-Signature=...",
"expiresAt": "2026-04-18T14:45:00Z"
}
Erreurs fréquentes
| Code | Message | Cause |
|---|
| 400 | ”Format de fichier non supporté” | Extension non autorisée |
| 413 | ”Fichier trop volumineux” | Dépassement de la taille max |
| 422 | ”Fichier corrompu ou illisible” | Échec de la validation (PDF cassé, etc.) |
Tout fichier est scanné à l’upload (virus, contenu). Un fichier détecté comme malveillant est supprimé immédiatement et le compte est signalé.