¿Qué son las Assembly Instructions?

Las Assembly Instructions de Transloadit definen los Steps con nombre de un flujo de trabajo de procesamiento de archivos. Cada Step selecciona un Robot y sus parámetros; el parámetro use determina cómo fluyen entre Steps los archivos subidos, importados o generados.

Cómo funcionan las Assembly Instructions

Las Instructions forman un grafo de procesamiento dirigido y acíclico, expresado mediante configuraciones de Steps con nombre y sus relaciones de entrada. Cada Step selecciona un Robot y sus parámetros, mientras que use determina qué subidas o resultados anteriores recibe el Step. Los Steps que importan o generan archivos pueden omitir use cuando no dependen de un Step anterior. Los demás Steps que omiten use se conectan implícitamente a la salida del Step precedente; el primer Step declarado usa :original de forma predeterminada. Declara use explícitamente cuando el orden de los Steps no deba determinar el grafo. El nombre reservado de Step :original hace referencia a los archivos subidos. Un Step declarado con ese nombre solo puede ejecutar el Robot /upload/handle, y ningún otro Step puede ejecutar ese Robot; un valor de use puede hacer referencia a :original sin declararlo como Step. El documento de Instructions es distinto de una Assembly, que es una ejecución del grafo, y de un Template, que guarda las Instructions para reutilizarlas. Antes de que comience el procesamiento multimedia, Transloadit valida que cada Step sea un objeto bien formado que indique un Robot existente, que cada referencia declarada en use se resuelva y que el grafo no contenga ciclos.

Datos clave

  1. Los nombres de los Steps son identificadores del grafo. Si use indica un Step que no existe, Transloadit rechaza la Assembly con ASSEMBLY_STEP_UNKNOWN_USE (HTTP 400) antes de que comience el procesamiento.
  2. Los resultados de un Step pueden alimentar varios Steps posteriores, por lo que cada derivado no necesita su propia subida o importación. Esos Steps se ejecutan en paralelo en cuanto su Step de entrada emite archivos, así que, con valores explícitos de use, el orden en que se declaran los Steps no determina el orden en que se producen o exportan los resultados. El orden de declaración solo importa cuando un Step omite use y se conecta implícitamente al Step precedente.
  3. Un Template mantiene la lógica reutilizable del flujo de trabajo fuera de las solicitudes de los clientes. De forma predeterminada, los clientes pueden sobrescribir los Steps; establece allow_steps_override en false en el Template, y las solicitudes que aun así incluyan Steps se rechazan con TEMPLATE_DENIES_STEPS_OVERRIDE (HTTP 400). El ajuste solo abarca los Steps: los demás parámetros de la solicitud siguen combinándose con el Template y prevaleciendo sobre sus valores. Para impedir que quienes realizan llamadas y no son de confianza los cambien, exige Signature Authentication (mediante el ajuste del Workspace o require_signature_auth en el Template) y haz que un backend de confianza firme únicamente los parámetros que apruebe. El requisito se aplica a las solicitudes autenticadas con una Auth Key; los tokens Bearer válidos no están sujetos a él. Una firma solo cubre el valor serializado de params. Los campos del formulario de subida enviados junto con él no están firmados, rellenan ${fields.*} y tienen prioridad sobre los valores del mismo nombre en la clave firmada fields, por lo que un Template bloqueado que construye una ruta de almacenamiento u otro ajuste a partir de ${fields.*} sigue permitiendo que quien realiza la llamada elija ese valor.
  4. Un Step que no produce nada no necesariamente ha fallado. De forma predeterminada, un Robot ignora los tipos de archivo que no maneja (el ejemplo de la documentación es /video/encode ignorando imágenes), por lo que una rama puede simplemente no producir nada para esos archivos. Usa /file/filter para dirigir deliberadamente subidas de tipos diversos; la documentación reserva force_accept para la depuración y los casos excepcionales.

Cuándo importan las Assembly Instructions

Guarda las Instructions en un Template cuando quienes realizan las llamadas deban reutilizar un flujo de trabajo gestionado en el servidor. Si no deben modificar sus Steps, establece allow_steps_override en false; para impedir que también cambien otros parámetros de la solicitud, exige Signature Authentication para las solicitudes realizadas con tu Auth Key. Ninguno de estos controles abarca los campos del formulario de subida, así que no derives de ${fields.*} un ajuste cuyo valor no deban elegir quienes realizan las llamadas. Al generar Instructions o cambiar los nombres de los Steps, comprueba que cada valor de use haga referencia al nombre de un Step declarado o a :original para que la Assembly supere la validación.

Cómo ayuda Transloadit con las Assembly Instructions

Transloadit valida y ejecuta las Assembly Instructions como el flujo de trabajo de una Assembly. Cada Step con nombre invoca un Robot para subir, importar, procesar, analizar, almacenar o servir archivos, y el parámetro use dirige los resultados entre Steps. Un Template almacena Instructions para reutilizarlas, una Assembly es una ejecución de estas, y el Assembly Status y las Notifications informan del resultado.

Explora las capacidades de la plataforma de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis