Suivre la progression du téléchargement avec les abonnements
Après avoir téléchargé un fichier sur l’URL S3 pré-signée, la plateforme continue de le traiter 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.
Pour le schéma général des événements, voir Format d'événement d'abonnement.
Flux et Catégorie
Les événements de téléchargement sont transmis 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 de l’événement de téléchargement
Les contenus des téléchargements utilisent cette structure 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 bas niveau pendant la migration et la compatibilité.
Opération d’abonnement
subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}
Exemple 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 l’utiliser
Cela est le plus utile lorsque vous souhaitez :
- afficher un tiroir de progression ou une timeline de statut de téléchargement
- détecter les échecs de validation asynchrone après la réussite du PUT S3
- réagir immédiatement lorsqu’un modèle ou un asset téléchargé est prêt