Cette page concerne l'usage de Coffrify depuis le JVM (Java, et par extension Kotlin ou Scala). Un SDK Java officiel est en préparation, mais il n'est pas encore publié. En attendant, vous pouvez utiliser l'intégralité de l'API REST v1 directement depuis votre application, en vous appuyant sur le client HTTP intégré au JDK, java.net.http.HttpClient (disponible depuis Java 11). Les exemples ci-dessous montrent comment créer un transfert, téléverser les fichiers, lister vos transferts et recevoir les webhooks, sans dépendance externe.
Prérequis
Vous avez besoin de Java 11 ou plus récent (pour java.net.http.HttpClient) et d'une clé API. Les clés de test commencent par cof_test_, les clés de production par cof_live_. Toutes les requêtes passent par la base https://api.coffrify.com/v1 et s'authentifient avec l'en-tête Authorization: Bearer <clé>. Ne placez jamais une clé cof_live_ dans du code livré côté client : conservez-la sur votre serveur, par exemple via une variable d'environnement.
- Base de l'API :
https://api.coffrify.com/v1 - Authentification : en-tête
Authorization: Bearer <clé> - Pour créer un transfert, votre clé doit disposer du scope
transfers:write - Sur les écritures, ajoutez l'en-tête
Idempotency-Key(8 à 255 caractères) pour pouvoir rejouer une requête sans risque de doublon
Créer un transfert
POST/v1/transfersCrée un transfert chiffré et renvoie les URL de téléversement ainsi que le lien de partage.Vous décrivez les fichiers (name, size, mime_type) et, en option, la durée de validité (expires_in_hours), un destinataire (recipient), un titre (transfer_title), un mot de passe (password) ou une limite de téléchargements (max_downloads). La réponse contient l'objet transfer (avec son id, son short_code, son share_url et sa date d'expiration) et un tableau upload_urls : un élément par fichier, dans le même ordre que le tableau files envoyé.
Pour parser la réponse JSON, utilisez la bibliothèque de votre choix (Jackson, Gson, ou le JSONObject de votre stack). Les exemples ci-dessus laissent volontairement le corps de réponse en texte brut afin de rester sans dépendance ; en pratique, récupérez transfer.id, transfer.share_url et le tableau upload_urls pour la suite.
Téléverser les fichiers
Chaque entrée de upload_urls fournit un file_id, une url et un objet headers. Vous envoyez le contenu du fichier en PUT vers cette url, en reprenant tels quels les en-têtes renvoyés. Ces URL sont à usage direct et temporaire : ne réécrivez pas l'en-tête Authorization dessus, et appliquez exactement les headers fournis par l'API.
Une fois tous les fichiers téléversés, le transfert est prêt. Partagez simplement le share_url renvoyé à la création : c'est le lien que votre destinataire ouvrira pour télécharger les fichiers.
Lister les transferts
GET/v1/transfersListe vos transferts par pages, via un curseur. La taille de page (limit) est plafonnee a 100.Pour récupérer ou supprimer un transfert précis, appelez GET /v1/transfers/{id} ou DELETE /v1/transfers/{id} selon le même modèle : reprenez le code ci-dessus en remplaçant l'URI et, pour la suppression, en utilisant .DELETE() à la place de .GET().
Webhooks
Vous pouvez recevoir des notifications d'événements (par exemple transfer.downloaded) sur une URL HTTPS de votre application. Côté JVM, exposez un endpoint avec votre framework habituel (Spring, Javalin, ou un simple HttpServer) et vérifiez la signature de chaque requête avant de traiter la charge utile. Coffrify signe selon le standard *Standard Webhooks* (en-têtes webhook-id, webhook-timestamp, webhook-signature) et accepte une tolérance d'horloge de 5 minutes.
- Créez l'abonnement via
POST /v1/webhooks(par défaut, l'événementtransfer.downloaded). - Le secret de signature
whsec_...n'est affiché qu'une seule fois à la création : stockez-le immédiatement. - À la réception, recalculez un HMAC-SHA256 avec ce secret et comparez-le à l'en-tête
webhook-signatureavant d'agir. - Rejetez toute requête dont l'horodatage s'écarte de plus de 5 minutes de l'heure courante.
Aller plus loin
Tous les autres points de l'API (Réception / intake, coffres, gestion des clés, export RGPD) sont accessibles depuis le JVM selon le même schéma : une requête HttpRequest, l'en-tête Authorization: Bearer, et un en-tête Idempotency-Key sur les écritures. Consultez la référence REST pour la liste complète des points d'accès, des champs et des codes d'erreur, dont le format est {"error":{"code":"...","message":"...","request_id":"..."}}. Dès que le SDK Java officiel sera disponible, cette page sera mise à jour avec les instructions d'installation et les exemples idiomatiques.