# API de gestion de fichiers Cette API permet de gérer l'upload, la récupération et la suppression de fichiers. Elle offre des fonctionnalités avancées comme le redimensionnement d'images et la personnalisation des formats selon vos besoins. ## Prérequis - Une clé API valide (à inclure dans l'en-tête `X-API-KEY` pour toutes les requêtes) - L'url du serveur: `{{BASE_URL}}` ## Authentification Toutes les requêtes doivent inclure un en-tête `X-API-KEY` avec votre clé API : ```bash X-API-KEY: votre_clé_api ``` ## Points d'accès (Endpoints) ### Upload d'un fichier unique ```bash POST /api/upload ``` **Corps de la requête :** `multipart/form-data` - `file` : Le fichier à uploader - `formats` (optionnel) : Formats de redimensionnement pour les images (JSON) **Exemple de requête :** ```bash curl -X POST {{BASE_URL}}/api/upload \ -H "X-API-KEY: votre_clé_api" \ -F "file=@chemin/vers/image.jpg" \ -F "formats=[\"100x100\",\"500x500\"]" ``` **Réponse :** ```json { "success": true, "data": { "fileId": "unique_file_id", "token": "access_token", "url": "{{BASE_URL}}/api/file/unique_file_id?token=access_token", "filename": "image.jpg", "size": 12345, "type": "image/jpeg", "formats": ["100x100", "500x500"] } } ``` ### Upload de fichiers multiples ```bash POST /api/upload/multi ``` **Corps de la requête :** `multipart/form-data` - `files[]` : Les fichiers à uploader (multiple) - `fileConfigs` : Configuration spécifique pour chaque fichier (JSON) **Exemple de structure fileConfigs :** ```json [ { "identifier": "profil_image", "formats": ["200x200", "50x50"], "category": "avatar" }, { "identifier": "background_image", "formats": ["1920x1080", "800x600"], "priority": "high" }, { "identifier": "document" } ] ``` **Exemple de requête :** ```bash curl -X POST {{BASE_URL}}/api/upload/multi \ -H "X-API-KEY: votre_clé_api" \ -F "files[]=@image1.png" \ -F "files[]=@image2.png" \ -F "files[]=@document.docx" \ -F 'fileConfigs=[{"identifier":"profil_image","formats":["200x200","50x50"],"category":"avatar"},{"identifier":"background_image","formats":["1920x1080","800x600"],"priority":"high"},{"identifier":"document"}]' ``` **Réponse :** ```json { "success": true, "data": { "files": [ { "fileId": "unique_file_id_1", "token": "access_token_1", "url": "{{BASE_URL}}/api/file/unique_file_id_1?token=access_token_1", "filename": "image1.png", "size": 12345, "type": "image/png", "identifier": "profil_image", "formats": ["200x200", "50x50"], "category": "avatar" }, { "fileId": "unique_file_id_2", "token": "access_token_2", "url": "{{BASE_URL}}/api/file/unique_file_id_2?token=access_token_2", "filename": "image2.png", "size": 67890, "type": "image/png", "identifier": "background_image", "formats": ["1920x1080", "800x600"], "priority": "high" }, { "fileId": "unique_file_id_3", "token": "access_token_3", "url": "{{BASE_URL}}/api/file/unique_file_id_3?token=access_token_3", "filename": "document.docx", "size": 54321, "type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "identifier": "document", "formats": [] } ] } } ``` ### Récupération d'un fichier ```bash GET /api/file/{id} ``` **Paramètres de requête :** - `token` : Token d'accès au fichier (requis) **Exemple de requête :** ```bash curl -X GET "{{BASE_URL}}/api/file/unique_file_id?token=access_token" \ -H "X-API-KEY: votre_clé_api" ``` **Réponse :** Le contenu du fichier avec les headers appropriés. ### Récupération des métadonnées d'un fichier ```bash GET /api/metadata/{id} ``` **Exemple de requête :** ```bash curl -X GET {{BASE_URL}}/api/metadata/unique_file_id \ -H "X-API-KEY: votre_clé_api" ``` **Réponse :** ```json { "success": true, "data": { "fileId": "unique_file_id", "filename": "image.jpg", "size": 12345, "type": "image/jpeg", "uploadedAt": "2025-05-05T12:34:56Z", "formats": ["100x100", "500x500"], "category": "avatar" } } ``` ### Suppression d'un fichier ```bash DELETE /api/delete/{id} ``` **Exemple de requête :** ```bash curl -X DELETE {{BASE_URL}}/api/delete/unique_file_id \ -H "X-API-KEY: votre_clé_api" ``` **Réponse :** ```json { "success": true, "message": "File deleted successfully" } ``` ## Configurations des formats d'image Pour les fichiers image, vous pouvez spécifier différents formats de redimensionnement : - Format : `{largeur}x{hauteur}` - Exemples : `"100x100"`, `"500x500"`, `"1920x1080"` Ces formats seront appliqués lors du traitement des images et créeront des versions redimensionnées que vous pourrez utiliser dans votre application. ## Considérations sur la sécurité - Les tokens d'accès aux fichiers sont requis pour accéder aux fichiers. - La clé API est nécessaire pour toutes les requêtes à l'API. - Les fichiers téléchargés sont validés pour éviter les fichiers malveillants. ## Limitations - Taille maximale de fichier : 10 MB - Types de fichiers acceptés : images (jpg, png, gif, webp), documents (pdf, docx, xlsx), vidéos (mp4, webm) - Nombre maximum de fichiers par requête : 10 ## Support Pour toute question ou problème, veuillez contacter l'équipe de support à .