API publique
Une clé API te permet d'uploader, lister, télécharger et supprimer des fichiers d'un drive directement depuis le serveur d'un autre site — sans passer par cette interface.
Créer une clé
Dans Réglages → API pour développeurs, choisis le drive concerné et génère une clé. Elle n'est affichée qu'une seule fois: copie-la immédiatement dans la configuration de ton site (variable d'environnement, jamais dans du code commité).
Authentification
Toutes les routes sont sous /api/v1 et attendent un en-tête Authorization :
Authorization: Bearer dvc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxChaque clé est liée à un seul drive et porte une ou deux permissions : read (lecture) et write (upload + suppression). Les routes gèrent le CORS — tu peux les appeler directement depuis le navigateur d'un site tiers si tu préfères, mais garder la clé côté serveur reste plus sûr.
Vérifier la clé
curl https://ton-domaine.tld/api/v1/me \
-H "Authorization: Bearer dvc_xxx"
# → { "drive": "Mon site", "driveId": "...", "scopes": ["read", "write"] }Uploader un fichier
POST /api/v1/files — multipart/form-data avec un champ file, et optionnellement parentId (dossier cible) et filename.
curl -X POST https://ton-domaine.tld/api/v1/files \
-H "Authorization: Bearer dvc_xxx" \
-F "file=@/chemin/vers/fichier.pdf"Réponse 201 avec les métadonnées du fichier créé (id, filename, size,mimeType…).
Limite de taille (upload simple)
Ce chemin transite par notre serveur en une seule requête : la taille est donc bornée par la limite de requête de l'hébergeur (45 Mio ici). Pour des fichiers plus gros, utilise l'upload par morceaux ci-dessous.
Upload par morceaux (taille illimitée)
Pour dépasser la limite de requête, découpe ton fichier en morceaux d'environ 9 Mio et envoie-les un par un à POST /api/v1/files/chunks (champ chunk, plus indexpour l'ordre), puis finalise avec un appel JSON à POST /api/v1/files contenant la liste des morceaux renvoyés. Aucune limite de taille sur ce dernier appel : il ne transporte que des références, jamais les octets du fichier.
# 1. un POST par morceau (~9 Mio chacun)
curl -X POST https://ton-domaine.tld/api/v1/files/chunks \
-H "Authorization: Bearer dvc_xxx" \
-F "index=0" -F "chunk=@part-000"
# → { "index": 0, "size": ..., "messageId": "...", "attachmentId": "...", "url": "...", "expiresAt": ... }
# … répète pour chaque morceau (index=1, 2, 3…) …
# 2. finalise avec la liste des morceaux (JSON, pas de fichier)
curl -X POST https://ton-domaine.tld/api/v1/files \
-H "Authorization: Bearer dvc_xxx" \
-H "Content-Type: application/json" \
-d '{
"filename": "video.mp4",
"mimeType": "video/mp4",
"chunks": [ { "index": 0, "size": 9500000, "messageId": "...", "attachmentId": "...", "url": "..." }, ... ]
}'/api/v1/files/chunksne transporte qu'un seul morceau (max ~10 Mio), donc il ne rencontre jamais la limite de requête de l'hébergeur — seul le nombre d'appels change avec la taille du fichier.Lister les fichiers
curl "https://ton-domaine.tld/api/v1/files?parentId=&limit=50" \
-H "Authorization: Bearer dvc_xxx"Récupérer un fichier
GET /api/v1/files/:id renvoie les métadonnées. GET /api/v1/files/:id/download renvoie directement les octets du fichier (déchiffrés si besoin), prêts à être servis ou relayés par ton site.
curl https://ton-domaine.tld/api/v1/files/abc123/download \
-H "Authorization: Bearer dvc_xxx" \
-o fichier.pdfLien public permanent (hotlink)
POST /api/v1/files/:id/public crée un lien public, sans mot de passe, qui n'expire pas — utilisable directement dans un <img src>, une balise <a> ou un fetch(), sans en-tête Authorization. Un seul lien public actif par fichier : recréer un lien remplace le précédent (et remplace aussi un lien créé depuis l'interface Drivecord pour ce même fichier, le cas échéant). DELETE /api/v1/files/:id/public le révoque.
curl -X POST https://ton-domaine.tld/api/v1/files/abc123/public \
-H "Authorization: Bearer dvc_xxx"
# → { "token": "...", "url": "https://ton-domaine.tld/api/v1/public/..." }Colle directement l'url renvoyée dans ton site :
<img src="https://ton-domaine.tld/api/v1/public/xxxxxxxxxx" alt="…" />Supprimer un fichier
curl -X DELETE https://ton-domaine.tld/api/v1/files/abc123 \
-H "Authorization: Bearer dvc_xxx"Limites de débit
Chaque clé est limitée à 60 requêtes/minute sur les routes générales, et 300/minute sur /api/v1/files/chunks (une grosse vidéo peut demander beaucoup de petits appels). Les liens publics (/api/v1/public/:token, pas d'authentification) sont limités à 300 requêtes/minute par IP. Au-delà, l'API répond 429 avec un en-tête Retry-After.