Chaque fichier téléversé dans un transfert Coffrify passe par une analyse antivirus avant d'être mis à disposition des destinataires. Cette page explique comment suivre l'état de l'analyse grâce au champ scan_status, comment recevoir les résultats en temps réel via les webhooks, et comment réagir lorsqu'un fichier est détecté comme infecté. L'analyse fonctionne aussi bien en mode serveur (AES-256-GCM) qu'en mode de bout en bout, sans que vous ayez à modifier votre intégration.
Le cycle de vie d'une analyse
À la création d'un transfert, les fichiers sont d'abord en attente d'analyse. Coffrify les inspecte de façon asynchrone : l'analyse peut se terminer en quelques secondes pour un petit document, ou prendre plus longtemps pour des fichiers volumineux. Vous pouvez interroger l'état à tout moment, mais la méthode recommandée reste l'abonnement aux webhooks décrits plus bas, qui vous notifient dès que le verdict est rendu.
Tant qu'un fichier n'a pas été déclaré sain, considérez sa diffusion comme suspendue : c'est votre application qui décide quoi montrer au destinataire pendant cette fenêtre.
Le champ scan_status
L'objet transfer renvoyé par l'API expose un champ scan_status qui reflète l'état global de l'analyse pour le transfert. Vous le retrouvez dans la réponse de POST /v1/transfers ainsi que dans GET /v1/transfers/{id}.
/v1/transfers/{id}Récupère un transfert et son champ scan_status courant.| Valeur de scan_status | Signification | Diffusion recommandée |
|---|---|---|
| pending | L'analyse n'a pas encore débuté ou est en file d'attente. | Suspendre |
| scanning | L'analyse est en cours. | Suspendre |
| clean | Aucune menace détectée, le fichier est sain. | Autoriser |
| infected | Une menace a été détectée sur au moins un fichier. | Bloquer |
Lire scan_status à la création
À la création, le transfert est presque toujours en pending ou scanning, car l'analyse est asynchrone. Ne vous fiez donc pas à la valeur initiale pour autoriser un téléchargement : attendez le verdict via un webhook ou un appel GET ultérieur.
Les évènements webhook d'analyse
Plutôt que d'interroger l'API en boucle, abonnez un endpoint webhook aux évènements d'analyse. Coffrify vous notifie dès que le verdict est disponible. Trois évènements concernent directement l'antivirus.
| Évènement | Quand il est émis |
|---|---|
| transfer.scanned | L'analyse d'un transfert est terminée, quel que soit le résultat. |
| transfer.scan_clean | Le transfert a été analysé et déclaré sain. |
| transfer.scan_infected | Une menace a été détectée sur le transfert. |
L'évènement transfer.scanned est un signal générique de fin d'analyse : il est pratique pour journaliser ou déclencher une vérification. Les évènements transfer.scan_clean et transfer.scan_infected portent directement le verdict, ce qui vous permet de réagir sans relire l'état. Vous pouvez vous abonner à l'un, à l'autre, ou aux trois selon votre logique.
Réagir à un verdict
La règle est simple : n'exposez le lien de partage à un destinataire qu'après réception de transfer.scan_clean (ou lorsque scan_status vaut clean). À l'inverse, lorsque vous recevez transfer.scan_infected, coupez immédiatement la diffusion. Selon votre besoin, vous pouvez masquer le lien dans votre interface, alerter l'expéditeur, puis supprimer le transfert côté Coffrify pour qu'il ne soit plus accessible du tout.
/v1/transfers/{id}Supprime un transfert infecté pour rendre son lien de partage inopérant.En résumé
- Le champ
scan_statuspasse dependingouscanningàcleanouinfected. - N'autorisez le téléchargement qu'une fois le verdict
cleanconfirmé. - Abonnez un webhook à
transfer.scan_cleanettransfer.scan_infectedplutôt que d'interroger l'API en boucle. - Sur
transfer.scan_infected, masquez le lien puis supprimez le transfert viaDELETE /v1/transfers/{id}. - L'analyse fonctionne en mode serveur comme en mode de bout en bout.