Saltar al contenido principal

Seguimiento del Progreso de la Carga con Suscripciones

Después de subir un archivo a la URL prefirmada de S3, la plataforma continúa procesándolo de forma asíncrona.

Usa subscribeUserFeed para recibir eventos de carga en tiempo real en lugar de hacer polling.

Alternativa más sencilla

Si no necesitas eventos en tiempo real, puedes hacer polling del campo fileUploaded de la plantilla hasta que devuelva true.

Para el esquema general de eventos, consulta Formato de Evento de Suscripción.

Feed y Categoría

Los eventos de carga se entregan en:

  • subscribeUserFeed

Utilizan:

  • category: "upload"

Nombres de Eventos

El procesamiento de la carga emite una secuencia de eventos como:

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

Carga del Evento de Subida

Las cargas de eventos usan esta forma 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 conserva el código de procesamiento de bajo nivel durante la migración y compatibilidad.

Operación de Suscripción

subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}

Ejemplo 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);
}
};

Cuándo Usar Esto

Esto es más útil cuando quieres:

  • mostrar un panel de progreso o una línea de tiempo del estado de la carga
  • detectar fallas de validación asíncronas después de que el PUT en S3 haya tenido éxito
  • reaccionar inmediatamente cuando una plantilla o un activo cargado esté listo

Export This Article

Save a copy of this page as PDF or plain text.