Aller au contenu principal

Suivre la Progression du Téléchargement avec les Abonnements

Après avoir téléchargé un fichier vers l’URL S3 pré-signée, la plateforme continue son traitement de manière asynchrone.

Utilisez subscribeUserFeed pour recevoir des événements de téléchargement en temps réel au lieu de faire du polling.

Alternative plus simple

Si vous n’avez pas besoin d’événements en temps réel, vous pouvez interroger le champ fileUploaded du template jusqu’à ce qu’il renvoie true.

Pour le schéma général des événements, consultez Format des Événements d’Abonnement.

Fil et Catégorie

Les événements de téléchargement sont diffusés sur :

  • subscribeUserFeed

Ils utilisent :

  • category: "upload"

Noms des Événements

Le traitement du téléchargement émet une séquence d’événements tels que :

  • uploadScanned
  • uploadTypeChecked
  • uploadConverting
  • uploadFlattened
  • uploadTagsParsed
  • uploadPdfMetaExtracted
  • uploadCompleted
  • uploadFailed

Contenu des Événements de Téléchargement

Les contenus des événements de téléchargement utilisent cette forme de base :

{
"version": "1.0",
"eventId": "evt...",
"timestamp": "2026-04-24T10:38:36.822Z",
"level": "INFO",
"event": "uploadCompleted",
"category": "upload",
"groupId": null,
"userId": "usr...",
"requestId": null,
"batchId": null,
"error": null,
"data": {
"id": "tmp...",
"key": "upload/usr.../tmp....pdf",
"code": "UPLOADOK"
}
}

data.code conserve le code de traitement de niveau inférieur pendant la migration et la compatibilité.

Opération d’Abonnement

subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}

Exemple en JavaScript

const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};

const handleUserFeed = ({ data }) => {
const wrapper = data?.subscribeUserFeed;
const event = parseEnvelope(wrapper);

if (event?.category !== 'upload') return;

switch (event.event) {
case 'uploadCompleted':
console.log('upload complete', event.data.id, event.data.key);
break;
case 'uploadFailed':
console.error('upload failed', event.data.code, event.data.key);
break;
default:
console.log('upload progress', event.event, event.data.code);
}
};

Quand Utiliser Ceci

Cela est particulièrement utile lorsque vous souhaitez :

  • afficher un volet de progression ou une chronologie d’état de téléchargement
  • détecter des erreurs de validation asynchrones après que le PUT S3 a réussi
  • réagir immédiatement lorsqu’un template ou un asset téléchargé est prêt