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.