¿Qué es una Assembly?
Una Assembly de Transloadit es una ejecución de Assembly Instructions sobre archivos subidos, importados o generados por el propio flujo de trabajo. Cada ejecución tiene un identificador assembly_id único que la identifica en solicitudes posteriores a la API.
Cómo funcionan las Assemblies
Una Assembly es el flujo de trabajo en tiempo de ejecución que se crea cuando una solicitud combina Assembly Instructions con fuentes de entrada: archivos subidos, archivos obtenidos mediante Steps de importación o archivos que un Robot crea por sí mismo, como una captura de pantalla de un sitio web o una imagen generada a partir de un prompt de texto. Las Instructions llegan directamente como steps o mediante una referencia a un Template guardado a través de template_id; el Template almacena la configuración, mientras que la Assembly es una ejecución concreta del Template. Los Steps comienzan en cuanto los Steps de los que dependen generan archivos, de modo que un archivo de origen puede alimentar varias ramas que se ejecutan en paralelo. Transloadit informa sobre la ejecución mediante un único documento de Assembly Status, que se devuelve al crear la Assembly, se sirve en su URL de estado y se envía a notify_url si se ha configurado. Ese documento cambia mientras se suben archivos a la Assembly o esta se ejecuta; una vez que la ejecución alcanza un estado terminal, contiene ok con el estado final o error con un código de error.
Datos clave
- 1Una respuesta HTTP satisfactoria a la solicitud de creación significa que la Assembly fue aceptada, no que el procesamiento haya finalizado correctamente. La Assembly sigue en ejecución mientras
okseaASSEMBLY_UPLOADING,ASSEMBLY_EXECUTINGoASSEMBLY_REPLAYING; soloASSEMBLY_COMPLETEDindica éxito.ASSEMBLY_CANCELEDyREQUEST_ABORTEDtambién aparecen bajooksin indicar éxito, y una solicitud de estado puede devolver HTTP 200 mientras el cuerpo contiene unerror, así que determina qué hacer según el cuerpo, no según el estado HTTP. - 2El
assembly_idfunciona como una capacidad de acceso: cualquiera que lo conozca puede solicitar el Assembly Status, incluidos los campos enviados y los resultados, sin autenticación adicional. Mantén el ID y las URL de estado fuera de las páginas públicas y de cualquier contenido compartido con terceros no confiables. La opciónquietsolo acorta la respuesta de creación; no restringe quién puede leer el estado después. - 3Crear una Assembly no es una operación idempotente. Reintentar la solicitud de creación, por ejemplo tras agotarse el tiempo de espera, puede iniciar una segunda Assembly con su propio
assembly_id, y añadir un nonce de firma no lo impide. Deduplica los reintentos en tu aplicación. - 4Los archivos de resultados se agrupan bajo el nombre del Step que los produjo, no en el orden de subida, y una subida puede generar varios resultados; relaciónalos con las subidas mediante
original_id. Los Steps que solo almacenan archivos no añaden ninguna entrada y, tras un error, los resultados pueden ser parciales. Las URL de los resultados en el almacenamiento temporal de Transloadit caducan, así que añade un Step de exportación cuando los archivos deban conservarse.
Cuándo importan las Assemblies
Guarda assembly_id en tu servidor si un flujo de trabajo debe consultar periódicamente el estado, recopilar resultados o vincular una Notification entrante con la solicitud que inició el flujo de trabajo, y trátalo como un secreto, porque el ID por sí solo basta para leer el Assembly Status. Decide antes de la puesta en producción cómo conocerá tu aplicación el resultado, ya sea consultando periódicamente la URL de estado o configurando notify_url, porque la respuesta a la solicitud de creación solo confirma que la Assembly fue aceptada.
Fuentes
- API de Transloadit: Crear una nueva Assembly
- API de Transloadit: Endpoint de estado de la Assembly (consultas periódicas y advertencia sobre el ID de la Assembly)
- API de Transloadit: Campos de la respuesta de Assembly Status
- API de Transloadit: Códigos de respuesta (estados en ejecución y finales)
- API de Transloadit: Webhooks (Assembly Notifications)
- Documentación de Transloadit: Assembly Instructions (entradas y orden de ejecución)