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.
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 :
uploadScanneduploadTypeCheckeduploadConvertinguploadFlatteneduploadTagsParseduploadPdfMetaExtracteduploadCompleteduploadFailed
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