Cette page décrit l'usage de Coffrify en Python. Le SDK Python officiel est en cours de préparation. En attendant sa sortie, vous n'avez besoin d'aucune dépendance spécifique à Coffrify : l'API REST v1 s'appelle parfaitement avec la librairie HTTP standard de l'écosystème Python, à savoir requests. Les exemples ci-dessous montrent comment créer un transfert chiffré, téléverser les fichiers, lister vos transferts et recevoir des webhooks, en pur Python, exactement comme le fera le futur SDK sous le capot.
Prérequis
Vous avez besoin d'une clé d'API (préfixe cof_live_… en production, cof_test_… en test) disponible depuis votre tableau de bord, et de la librairie requests. L'authentification se fait par l'en-tête Authorization: Bearer <clé>. La base de l'API est https://api.coffrify.com/v1.
Conservez votre clé hors du code source, par exemple dans une variable d'environnement COFFRIFY_API_KEY. Ne la committez jamais dans un dépôt.
Créer un transfert
POST/v1/transfersCrée un transfert et renvoie les URL de téléversement ainsi que le lien de partage.Un transfert se crée en deux temps : vous déclarez d'abord les fichiers (nom, taille, type MIME) et les options, puis vous téléversez le contenu vers les URL renvoyées. Le corps accepte notamment files, expires_in_hours, max_downloads, password, recipient et transfer_title. Le chiffrement AES-256-GCM côté serveur est appliqué par défaut, vous n'avez rien à gérer.
La réponse contient l'objet transfer (avec id, short_code, status, expires_at), un tableau upload_urls et le share_url à transmettre à votre destinataire.
Téléverser les fichiers
Chaque entrée de upload_urls fournit un file_id, une url et un dictionnaire headers. Pour chaque fichier, envoyez son contenu en PUT vers l'url correspondante, en reprenant les headers indiqués tels quels. Tant qu'aucun fichier n'est téléversé, le transfert n'est pas distribuable.
Lister les transferts
GET/v1/transfersListe paginée des transferts du workspace (pagination par curseur).La liste est paginée par curseur. Indiquez limit (100 au maximum) et faites suivre le cursor renvoyé pour récupérer la page suivante.
Idempotence et limites de débit
Sur les écritures (comme la création d'un transfert), ajoutez un en-tête Idempotency-Key (de 8 à 255 caractères) pour pouvoir rejouer une requête sans la dupliquer. Surveillez aussi les en-têtes X-RateLimit-Remaining et, en cas de réponse 429, respectez Retry-After.
Recevoir des webhooks
Coffrify peut notifier votre serveur lors d'événements comme transfer.downloaded. Le secret de signature (whsec_…) vous est montré une seule fois à la création du webhook. À chaque notification, vérifiez la signature avant de traiter le corps, en recalculant un HMAC-SHA256 avec votre secret, avec une tolérance de 5 minutes sur l'horodatage.
Pensez à comparer l'horodatage webhook-timestamp à l'heure courante et à rejeter les requêtes hors de la fenêtre de 5 minutes, afin de prévenir les rejeux.