Editar un Template
Actualiza un Template existente mediante su ID o nombre.
https://api2.transloadit.com/ templates/ {templateIdOrName}Actualiza el Template representado por TEMPLATE_ID_OR_NAME. Los ajustes de nivel superior omitidos normalmente permanecen
sin cambios, por lo que el ejemplo de solicitud siguiente cambia el nombre del Template sin modificar sus Instructions.
Al proporcionar template, se reemplazan por completo las Instructions almacenadas; no se combinan ni se modifican
Steps individuales. Incluye en ese objeto todos los Steps y todas las Instructions que quieras conservar.
La programación mediante cron es una función en versión preliminar con acceso controlado. Cada Workspace participante puede habilitar un
Template, con un máximo de 10.000 ticks admitidos por día UTC. Proporciona cron_region, un
cron_schedule_with_seconds de seis campos y cron_auth_key_id antes de establecer cron_enabled en true.
La Auth Key seleccionada debe pertenecer a este Workspace y permitir la creación de Assemblies.
Quien realiza la llamada también debe tener permiso para crear Assemblies al habilitar o editar una programación activa.
Deshabilitar la programación no requiere permiso para crear Assemblies. Si la programación deja de estar
disponible o el Workspace pierde el acceso a la versión preliminar, una edición ordinaria del Template deshabilita
automáticamente la programación, pero conserva su región, su horario, el ID de la Auth Key y la ejecución existente.
Deshabilitar un Template o pausar su Workspace, su región o el programador impide futuras
admisiones. Un tick ya admitido de forma duradera aún puede finalizar.
Las programaciones se ejecutan en UTC y deben mantener una separación de al menos 10 segundos entre cada par de ticks
consecutivos. Las Instructions deben usar importaciones HTTP o S3 autosuficientes y no pueden depender de archivos
cargados a través de :original o /upload/handle. Las Assemblies programadas importan como máximo 1.000 archivos de
entrada y respetan un límite max_number_of_files inferior si se ha definido. Los cambios de ejecución entran en vigor
en el siguiente tick futuro. Los ticks perdidos se omiten. cron_max_concurrent_runs tiene el valor predeterminado 1;
auméntalo hasta 10 para permitir ejecuciones programadas simultáneas. Los inicios pendientes y las ejecuciones sin resolver
cuentan para el límite incluso tras editar el Template y durante los ciclos de deshabilitación y rehabilitación. Al alcanzar el límite,
los ticks se omiten con el resultado y el motivo overlap; no se ponen en cola para más adelante.
Reducir el límite no cancela las ejecuciones existentes. Las Assemblies manuales no cuentan para este límite,
y los límites habituales del Workspace siguen aplicándose. Este ajuste no deduplica los archivos importados.
Un inicio consumido sin un punto de control de Assembly conserva su cupo hasta que vence su tiempo de espera
configurable, cuyo valor predeterminado es de 10 minutos. Entonces se marca como lost con el motivo
start_checkpoint_missing, lo que permite que los ticks posteriores continúen. Ese tick nunca se reintenta.
Una Assembly que permanezca caída sin un punto de control de recuperación durante ese mismo tiempo de espera pasa a
lost con el motivo recovery_checkpoint_missing, lo que también permite que los ticks futuros continúen.
Las Assemblies abortadas o fallidas siguen contando para el solapamiento hasta que finalizan sus Jobs. Si nunca llega un punto de control
final, caducan una vez transcurrido el tiempo de vida máximo de una Assembly del Workspace más el período de gracia para el punto de control;
a continuación, utilizan el mismo tiempo de espera acotado para declararse perdidas, sin reiniciar el trabajo abortado o fallido.
Un punto de control de Assembly tardío corrige el resultado conservado con el motivo start_checkpoint_late.
Las ejecuciones perdidas liberan sus cupos de forma permanente. Por lo tanto, una Assembly tardía puede superar temporalmente
el límite configurado, incluido el valor predeterminado de 1; esto no es un mecanismo estricto de exclusión mutua de ejecución.
Ejemplo de solicitud
Establece TEMPLATE_ID_OR_NAME en el valor de tu recurso sin aplicarle codificación porcentual.
Ejecuta esta solicitud en una consola del lado del servidor con curl y un token Bearer adecuado en TRANSLOADIT_TOKEN. Si necesitas un token, despliega la configuración siguiente.
¿Necesitas un token Bearer?
En una consola de confianza del lado del servidor con curl y jq, establece TRANSLOADIT_KEY y TRANSLOADIT_SECRET en tu Auth Key y tu Auth Secret. Mantén en secreto ambas credenciales y el token resultante; nunca ejecutes esta configuración en código del navegador.
Primero, crea un token con los ámbitos que requiere este endpoint. Tu Auth Key ya debe conceder esos ámbitos.
if ! TOKEN_RESPONSE="$(curl --fail-with-body -sS \
--request POST \
--url 'https://api2.transloadit.com/token' \
--user "${TRANSLOADIT_KEY:?Set TRANSLOADIT_KEY}:${TRANSLOADIT_SECRET:?Set TRANSLOADIT_SECRET}" \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'aud=api2' \
--data-urlencode 'scope=templates:write')"; then
printf '%s\n' "$TOKEN_RESPONSE" >&2
exit 1
fi
TRANSLOADIT_TOKEN="$(printf '%s' "$TOKEN_RESPONSE" |
jq -er '.access_token | strings | select(length > 0)')" || exit 1
Mantén abierta esta consola y ejecuta la solicitud siguiente. Reutiliza el token mientras siga siendo válido.
curl --fail-with-body -sS --request PUT \
--url "https://api2.transloadit.com/templates/${TEMPLATE_ID_OR_NAME:?Set TEMPLATE_ID_OR_NAME}" \
--header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
--data-urlencode 'params={"name":"resized-images"}'
Autenticación
Este endpoint acepta params firmados o un token Bearer. Consulta Autenticación para ver las instrucciones de configuración.
Ámbito requerido para el Auth Key o el token de portador: templates:write.
Las solicitudes firmadas requieren tanto una signature como una marca de tiempo futura en params.auth.expires. Los tokens Bearer no requieren ninguno de estos dos elementos.
Parámetros de ruta
templateIdOrName(segmento de ruta), obligatorio. patrón:^[a-z0-9-]+$, longitud mínima: 1
Campos del formulario
Tipo de contenido: application/x-www-form-urlencoded
params(cadena JSON), obligatorio. Un objeto codificado en JSON cuyas claves compatibles se enumeran a continuación.signature(cadena). Obligatorio para las solicitudes firmadas. Omite este campo cuando uses un token Bearer.
Claves admitidas dentro del campo params
Los campos de autenticación de esta lista se aplican a las solicitudes firmadas. Con un token Bearer puedes omitir params.auth y el campo separado signature. Compara a continuación los parámetros de solicitud de cada método de autenticación.
JSON Schema completo
params: Solo se aceptan los campos enumerados para este objeto.
| Campo | Tipo y descripción | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params. | "1day" | "30days" | "7days" | "90days" | "NoSave"Controla cuánto tiempo se conserva el Assembly Status de las Assemblies creadas a partir de este Template. | ||||||||||||||||||||||||||||||||||||
params.obligatorio para las solicitudes firmadas; opcional con un token Bearer | Contiene la clave de API de Transloadit y los metadatos de Signature Authentication para una solicitud de Template.
| ||||||||||||||||||||||||||||||||||||
params.obligatorio | stringMarca de tiempo de vencimiento ISO 8601 en el futuro. Es obligatoria cuando una solicitud está firmada o requiere autenticación mediante firma; las solicitudes autenticadas con Bearer pueden omitirla. | ||||||||||||||||||||||||||||||||||||
params.obligatorio | stringClave de API de Transloadit utilizada para autenticar solicitudes | ||||||||||||||||||||||||||||||||||||
params. | string | nullID de una Auth Key activa y no caducada que pertenezca a este Workspace y tenga permiso para crear Assemblies. Obligatorio al habilitar la vista previa del Template de Cron. La clave debe permitir firmar y no puede ser una clave interna. Patrón de validación (expresión regular)^[a-f0-9]{32}$ | ||||||||||||||||||||||||||||||||||||
params. | booleanActiva o desactiva la vista previa de Cron Template. Para activar o editar una programación activa, quien realiza la llamada debe tener permiso para crear Assemblies. Si se omite, se conserva la configuración actual mientras la programación siga disponible; una edición normal desactiva automáticamente la programación si se revoca el acceso a la vista previa. Cada Workspace que cumpla los requisitos puede activar un Cron Template. Las Instructions deben ser autocontenidas y usar importaciones HTTP o S3 sin | ||||||||||||||||||||||||||||||||||||
params. | integer (mínimo: 1, máximo: 10)Número máximo de ejecuciones programadas simultáneas de este Template. El valor predeterminado es 1 al crearlo; si se omite al actualizarlo, se conserva el límite guardado. Las activaciones que se producen con el límite alcanzado se omiten, no se ponen en cola. Los inicios pendientes y las ejecuciones sin resolver cuentan hasta que se completan o hasta que vence el tiempo de espera por pérdida del punto de control. Las ejecuciones perdidas liberan su cupo de forma permanente, por lo que una Assembly tardía puede superar temporalmente este límite. No elimina duplicados de los archivos importados ni limita las Assemblies manuales. Los límites habituales del Workspace siguen aplicándose. | ||||||||||||||||||||||||||||||||||||
params. | "ap-southeast-1" | "eu-west-1" | "us-east-1" | nullAPI regional utilizada para las Assemblies programadas. Obligatoria al habilitar la vista previa de Cron Template. | ||||||||||||||||||||||||||||||||||||
params. | string | null (longitud mínima: 1, longitud máxima: 255)Expresión cron numérica de seis campos, evaluada en UTC: segundo, minuto, hora, día del mes, mes y día de la semana. Admite comodines, valores separados por comas, rangos e incrementos. Las activaciones programadas deben estar separadas por al menos 10 segundos. La programación de Templates mediante cron es una versión preliminar con acceso controlado. | ||||||||||||||||||||||||||||||||||||
params. | string (longitud mínima: 3, longitud máxima: 200)Nombre de este Template. Usa entre 3 y 200 letras latinas minúsculas, números o guiones. El nombre Patrón de validación (expresión regular)^(?:[a-su-z0-9-][a-z0-9-]{2,199}|t[a-ln-z0-9-][a-z0-9-]{1,198}|tm[a-oq-z0-9-][a-z0-9-]{0,197}|tmp[a-z0-9-]{1,197})$ | ||||||||||||||||||||||||||||||||||||
params. | string | integerValor aleatorio y único incluido en los parámetros de las solicitudes firmadas para que cada firma sea única y evitar su reutilización accidental. | ||||||||||||||||||||||||||||||||||||
params. | 0 | 1Use | ||||||||||||||||||||||||||||||||||||
params. | object | stringLas Assembly Instructions almacenadas en este Template. Se recomienda usar el objeto JSON estructurado; por compatibilidad, se sigue aceptando una cadena codificada en JSON. Puede aplicarse cualquiera de los esquemas siguientes: objectAssembly Instructions estructuradas almacenadas en este Template.
stringstringAssembly Instructions codificadas en JSON que se conservan para mantener la compatibilidad con los clientes. Patrón de validación (expresión regular)^[\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*\{(?:[^\x00]|\x00)*\}[\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*$ | ||||||||||||||||||||||||||||||||||||
params. | "1day" | "NoSave"Controla cuánto tiempo se conservan los resultados de transcoding de las Assemblies creadas a partir de este Template. |
Parámetros de solicitud según el método de autenticación
Con parámetros firmados
Incluye tu Auth Key como params.auth.key. Al firmar la solicitud, incluye una marca de tiempo futura en params.auth.expires y envía la Signature en el campo separado signature. Las definiciones de los campos que aparecen a continuación usan rutas dentro de params.
JSON Schema completo
params: Solo se aceptan los campos enumerados para este objeto.
Utiliza las definiciones de campos indicadas arriba: params.assembly_status_expiry, params.auth, params.cron_auth_key_id, params.cron_enabled, params.cron_max_concurrent_runs, params.cron_region, params.cron_schedule_with_seconds, params.name, params.nonce, params.require_signature_auth, params.template, params.transcoding_result_expiry
Con un token Bearer
Envía el token Bearer en el encabezado Authorization. Puedes omitir params.auth y el campo independiente signature. Los demás parámetros obligatorios siguen siendo necesarios. Las definiciones de los campos que aparecen a continuación usan rutas dentro de params.
JSON Schema completo
params: Solo se aceptan los campos enumerados para este objeto.
Utiliza las definiciones de campos indicadas arriba: params.assembly_status_expiry, params.cron_auth_key_id, params.cron_enabled, params.cron_max_concurrent_runs, params.cron_region, params.cron_schedule_with_seconds, params.name, params.nonce, params.require_signature_auth, params.template, params.transcoding_result_expiry
| Campo | Tipo y descripción |
|---|---|
params. | Contiene la clave de API de Transloadit y los metadatos de Signature Authentication para una solicitud de Template.
|
params. | stringMarca de tiempo de vencimiento ISO 8601 en el futuro. Es obligatoria cuando una solicitud está firmada o requiere autenticación mediante firma; las solicitudes autenticadas con Bearer pueden omitirla. |
params. | stringClave de API de Transloadit utilizada para autenticar solicitudes |
Respuesta
Este es un ejemplo del cuerpo de la respuesta:
{
"assembly_status_expiry": null,
"content": {
"steps": {
"resize": {
"robot": "/image/resize",
"use": ":original",
"width": 320
}
}
},
"id": "8fc3b9166c784afd824acf24269ebd11",
"message": "Your Template was successfully updated.",
"name": "resized-images",
"ok": "TEMPLATE_UPDATED",
"require_signature_auth": 0,
"transcoding_result_expiry": null
}éxito 2xx
Cuerpo de respuesta JSON. application/json text/plain; charset=utf-8
Esquema del cuerpo de la respuesta
JSON Schema completo
La respuesta contiene únicamente los campos listados para este objeto.
| Campo | Tipo y descripción |
|---|---|
assembly_status_expiryobligatorio | null | string |
contentobligatorio | object | Array<cualquier valor> | string | number | boolean | nullPuede aplicarse cualquiera de los esquemas siguientes: objectobjectEsquema de propiedades adicionalescualquier valorArray<cualquier valor>Array<cualquier valor>Esquema de los elementos del arraycualquier valorstringnumberbooleannull |
cron_auth_key_id | string | nullPatrón de validación (expresión regular)^[a-f0-9]{32}$ |
cron_enabled | boolean |
cron_max_concurrent_runs | integer (mínimo: 1, máximo: 10) |
cron_region | "ap-southeast-1" | "eu-west-1" | "us-east-1" | null |
cron_schedule_with_seconds | string | null (longitud mínima: 1, longitud máxima: 255) |
idobligatorio | stringPuede aplicarse cualquiera de los esquemas siguientes: Variante 1: string (longitud máxima: 32)stringPatrón de validación (expresión regular)^[\x00-\x7F]*$Variante 2: string (longitud máxima: 32)stringPatrón de validación (expresión regular)^builtin\/[a-z0-9-]+(?:@[0-9a-z.-]+)?$ |
messageobligatorio | string (longitud mínima: 1) |
nameobligatorio | string (longitud mínima: 1, longitud máxima: 255) |
okobligatorio | string (siempre: "TEMPLATE_UPDATED") |
require_signature_authobligatorio | 0 | 1 |
transcoding_result_expiryobligatorio | null | string |
Respuesta de error
Cuerpo de respuesta JSON. application/json text/plain; charset=utf-8
Esquema del cuerpo de la respuesta
JSON Schema completo
La respuesta puede contener campos adicionales.
| Campo | Tipo y descripción |
|---|---|
assembly_id | string |
error | string (longitud mínima: 1) |
http_code | number | string
|
message | stringExplicación del error legible por humanos. Su redacción puede variar; usa el código |
reason | null | string | number | boolean | Array<cualquier valor> | objectPuede aplicarse cualquiera de los esquemas siguientes: nullstringnumberbooleanArray<cualquier valor>Array<cualquier valor>Esquema de los elementos del arraycualquier valorobjectobjectEsquema de propiedades adicionalescualquier valor |
HTTP 400
Cuerpo de respuesta JSON. application/json text/plain; charset=utf-8
Esquema del cuerpo de la respuesta
JSON Schema completo
Errores con nombre y el formato general de error
error: "TEMPLATE_VALIDATION_ERROR"
Tu Template no pasó la validación.
La respuesta puede contener campos adicionales.