Un transfert qui reste accessible indéfiniment est un risque inutile. Coffrify vous donne deux leviers complémentaires pour borner la durée de vie de chaque partage : max_downloads, qui limite le nombre de téléchargements, et expires_in_hours, qui fixe une date d'expiration. Vous les définissez à la création du transfert, le lien se bloque automatiquement dès que l'une des deux limites est atteinte, et les fichiers finissent par être purgés du stockage. Cette page explique le comportement exact de ces plafonds, ce qui se passe à l'épuisement, et les bonnes pratiques pour calibrer la durée de vie selon la sensibilité de vos données.
Deux leviers : nombre de téléchargements et expiration
À la création d'un transfert via POST /v1/transfers, vous pouvez fournir deux champs optionnels qui pilotent sa durée de vie. Ils sont indépendants : vous pouvez n'en utiliser qu'un, les deux, ou aucun. Quand les deux sont présents, c'est la première limite atteinte qui ferme le lien, qu'il s'agisse du quota de téléchargements ou de la date d'expiration.
| Champ | Type | Rôle | Comportement par défaut |
|---|---|---|---|
max_downloads | entier | Nombre maximal de téléchargements autorisés avant blocage du lien. | Illimité si non fourni (seule l'expiration s'applique). |
expires_in_hours | entier | Nombre d'heures avant expiration, compté à partir de la création. | Une expiration par défaut s'applique selon votre offre si vous ne la précisez pas. |
/v1/transfersCrée un transfert. Les champs max_downloads et expires_in_hours bornent sa durée de vie. Réponse : transfer.expires_at indique la date d'expiration calculée.La réponse contient le bloc transfer avec sa date d'expiration calculée dans expires_at, ainsi que les upload_urls à utiliser en PUT pour téléverser vos fichiers. Conservez transfer.id et transfer.short_code : ils vous permettront de suivre l'état du transfert et son décompte de téléchargements.
Ce qui se passe à l'épuisement
Dès qu'une limite est atteinte, le lieu de partage cesse de servir les fichiers. Le passage se fait en deux temps : d'abord le blocage du lien, immédiat, puis la purge des fichiers du stockage, qui rend la suppression définitive.
- Quota de téléchargements atteint : une fois
max_downloadsconsommé, toute nouvelle tentative de téléchargement est refusée. Le lien existe toujours mais ne délivre plus aucun fichier. - Expiration atteinte : passé
expires_at, le transfert bascule en expiré et le lien ne donne plus accès au contenu, même si le quota de téléchargements n'a pas été épuisé. - Purge des fichiers : après blocage, les fichiers chiffrés sont purgés du stockage. La récupération devient impossible, y compris pour vous : il faut alors recréer un transfert.
- Suppression manuelle : vous pouvez toujours fermer un lien avant ses limites avec
DELETE /v1/transfers/{id}, ce qui déclenche le même processus de purge.
Suivre l'état et le décompte
Vous n'avez pas besoin de deviner où en est un transfert : un appel GET /v1/transfers/{id} renvoie son status et sa date d'expiration. Pour réagir en temps réel, abonnez-vous aux webhooks transfer.downloaded (à chaque téléchargement) et transfer.expired (au franchissement de l'expiration), afin de relancer un partage ou prévenir un destinataire automatiquement.
Bonnes pratiques
- Calez la durée sur la sensibilité : plus les données sont confidentielles, plus
expires_in_hoursdoit être court. Pour un document très sensible, quelques heures suffisent souvent. - Associez un quota au nombre réel de destinataires : si un seul destinataire est attendu, fixez
max_downloadsà1(ou2pour absorber un nouvel essai) plutôt que de laisser le lien ouvert. - Préférez l'expiration courte au lien permanent : un transfert à durée de vie limitée se purge tout seul, ce qui réduit le risque qu'un ancien lien circule encore.
- Surveillez via webhooks : écoutez
transfer.downloadedettransfer.expiredpour automatiser vos relances et vos audits, plutôt que d'interroger l'API en boucle. - Ne réutilisez pas un lien expiré : recréez un transfert. Tenter de prolonger un lien dont les fichiers sont purgés n'est pas possible.
En résumé, max_downloads et expires_in_hours vous laissent décider précisément combien de fois et pendant combien de temps un partage reste vivant. La première limite atteinte ferme le lien, puis les fichiers sont purgés sans retour possible. Définissez ces plafonds dès la création, suivez l'état via GET ou les webhooks, et calibrez la durée de vie au plus juste pour chaque transfert.