Editar um Template
Atualiza um Template existente pelo seu ID ou nome.
https://api2.transloadit.com/ templates/ {templateIdOrName}Atualiza o Template representado por TEMPLATE_ID_OR_NAME. As configurações de nível superior omitidas normalmente permanecem
inalteradas, portanto o exemplo de requisição abaixo renomeia o Template sem alterar suas Instructions.
Fornecer template substitui integralmente as Instructions armazenadas; não mescla nem altera parcialmente
Steps individuais. Inclua nesse objeto todos os Steps e todas as Instructions que você deseja manter.
O agendamento por cron é uma prévia com controle de acesso. Cada Workspace participante pode habilitar um
Template, com no máximo 10.000 ticks admitidos por dia UTC. Forneça cron_region, um
cron_schedule_with_seconds de seis campos e cron_auth_key_id antes de definir cron_enabled como true.
A Auth Key selecionada deve pertencer a este Workspace e permitir a criação de Assemblies.
Quem faz a chamada também deve ter permissão para criar Assemblies ao habilitar ou editar um agendamento ativo.
Desabilitar o agendamento não exige permissão para criar Assemblies. Se o agendamento ficar
indisponível ou o Workspace perder o acesso à prévia, uma edição comum do Template automaticamente
desabilita o agendamento, preservando sua região, programação, ID da Auth Key e execução existente.
Desabilitar um Template ou pausar seu Workspace, sua região ou o agendador impede futuras
admissões. Um tick cuja admissão já foi registrada de forma durável ainda pode ser concluído.
Os agendamentos são executados em UTC e devem manter um intervalo mínimo de 10 segundos entre
cada par de ticks consecutivos. As Instructions devem usar importações HTTP ou S3 autocontidas e não podem depender de arquivos
enviados por meio de :original ou /upload/handle. As Assemblies agendadas importam no máximo 1.000 arquivos de
entrada e respeitam um limite max_number_of_files menor definido nas Instructions. As alterações de execução entram em vigor
no próximo tick futuro. Os ticks perdidos são ignorados. cron_max_concurrent_runs tem o valor padrão de 1;
aumente esse valor até 10 para permitir execuções agendadas simultâneas. Inícios pendentes e execuções ainda não resolvidas
contam para o limite, mesmo após edições do Template e ciclos de desabilitação e reabilitação. Ao atingir o limite,
os ticks são ignorados com resultado e motivo overlap; eles não são enfileirados para depois.
Reduzir o limite não cancela execuções existentes. As Assemblies manuais não contam para esse limite,
e os limites normais do Workspace continuam se aplicando. Essa configuração não elimina duplicatas dos arquivos importados.
Um início consumido sem um checkpoint de Assembly mantém sua vaga até atingir seu tempo limite
configurável, cujo padrão é de 10 minutos. Em seguida, ele é marcado como lost com o motivo
start_checkpoint_missing, permitindo que ticks posteriores prossigam. Esse tick nunca é repetido.
Uma Assembly agendada que sofre uma falha abrupta não é reexecutada. Sua execução é marcada como failed com o motivo
crashed_not_retried e libera imediatamente sua vaga de sobreposição. A Assembly permanece no estado de falha abrupta
e envia a notificação de erro habitual. A próxima execução agendada prossegue normalmente.
As Assemblies abortadas ou que falharam mantêm a sobreposição até que seus Jobs terminem. Se um checkpoint final
nunca chegar, elas expiram após o tempo máximo de vida de uma Assembly no Workspace somado ao período de
tolerância para checkpoints, são então marcadas como tendo sofrido uma falha abrupta e liberam a sobreposição sem repetir o processamento abortado ou que falhou.
Um checkpoint de Assembly que chega com atraso corrige o resultado retido com o motivo start_checkpoint_late.
As execuções com status lost liberam suas vagas permanentemente. Por isso, uma Assembly atrasada pode fazer com que o limite
configurado seja temporariamente excedido, inclusive o padrão de 1; isso não constitui um mutex estrito de execução.
Exemplo de requisição
Defina TEMPLATE_ID_OR_NAME com o valor do seu recurso, sem aplicar codificação percentual.
Execute esta requisição em um shell no servidor com curl e um token bearer adequado em TRANSLOADIT_TOKEN. Se precisar de um token, expanda a configuração abaixo.
Precisa de um token bearer?
Em um shell confiável no servidor com curl e jq, defina TRANSLOADIT_KEY e TRANSLOADIT_SECRET com sua Auth Key e seu Auth Secret. Mantenha ambas as credenciais e o token resultante em segredo; nunca execute essa configuração em código no navegador.
Primeiro, crie um token com os escopos exigidos por este endpoint. Sua Auth Key já deve conceder esses escopos.
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
Mantenha este shell aberto e execute a requisição abaixo. Reutilize o token enquanto ele permanecer 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"}'
Autenticação
Este endpoint aceita params assinados ou um token bearer. Consulte Autenticação para instruções de configuração.
Escopo necessário para a Auth Key ou o token bearer: templates:write.
Requisições assinadas exigem tanto uma signature quanto um timestamp params.auth.expires no futuro. Tokens Bearer não exigem nenhum dos dois.
Parâmetros de caminho
templateIdOrName(segmento de caminho), obrigatório. padrão:^[a-z0-9-]+$, comprimento mínimo: 1
Campos do formulário
Tipo de conteúdo: application/x-www-form-urlencoded
params(string JSON), obrigatório. Um objeto codificado em JSON cujas chaves suportadas estão listadas abaixo.signature(string). Obrigatório para requisições assinadas. Omita este campo ao usar um bearer token.
Chaves compatíveis dentro do campo params
Os campos de autenticação desta lista se aplicam a requisições assinadas. Com um bearer token, você pode omitir params.auth e o campo signature separado. Compare os parâmetros de requisição específicos de autenticação abaixo.
Esquema JSON completo
params: Somente os campos listados para este objeto são aceitos.
| Campo | Tipo e descrição | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params. | "1day" | "30days" | "7days" | "90days" | "NoSave"Controla por quanto tempo o Assembly Status é retido para Assemblies criadas a partir deste Template. | ||||||||||||||||||||||||||||||||||||
params.obrigatório para requisições assinadas; opcional com um bearer token | Contém a chave de API da Transloadit e os metadados de autenticação por assinatura para uma requisição de Template.
| ||||||||||||||||||||||||||||||||||||
params.obrigatório | stringTimestamp de expiração no formato ISO 8601 situado no futuro. Obrigatório quando uma requisição é assinada ou exige autenticação por assinatura; requisições autenticadas por bearer podem omiti-lo. | ||||||||||||||||||||||||||||||||||||
params.obrigatório | stringChave de API da Transloadit usada para autenticar as requisições | ||||||||||||||||||||||||||||||||||||
params. | string | nullID de uma Auth Key ativa e não expirada pertencente a este Workspace, com permissão para criar Assemblies. Obrigatório ao habilitar a pré-visualização do Template Cron. A chave deve permitir a assinatura e não pode ser uma chave interna. Padrão de validação (expressão regular)^[a-f0-9]{32}$ | ||||||||||||||||||||||||||||||||||||
params. | booleanAtiva ou desativa a prévia do Template Cron. Ativar ou editar um agendamento ativo exige que o chamador tenha permissão para criar Assemblies. A omissão mantém a configuração atual enquanto o agendamento permanecer disponível; uma edição comum desativa automaticamente o agendamento se o acesso à prévia for revogado. Cada Workspace elegível pode ativar um Template Cron. As Instructions devem ser autossuficientes, usando importações HTTP ou S3 sem | ||||||||||||||||||||||||||||||||||||
params. | integer (mínimo: 1, máximo: 10)Número máximo de execuções agendadas simultâneas deste Template. O padrão é 1 na criação; omitir este valor na atualização preserva o limite salvo. Disparos do agendamento que ocorrem com o limite atingido são ignorados, não enfileirados. Inícios pendentes e execuções não resolvidas contam até a conclusão ou até o tempo limite de perda de checkpoint. Execuções perdidas liberam sua vaga permanentemente, então uma Assembly atrasada pode exceder temporariamente este limite. Não elimina duplicatas de arquivos importados nem limita Assemblies manuais. Os limites normais do Workspace continuam valendo. | ||||||||||||||||||||||||||||||||||||
params. | "ap-southeast-1" | "eu-west-1" | "us-east-1" | nullAPI regional usada para Assemblies agendadas. Obrigatória ao habilitar a prévia do Cron Template. | ||||||||||||||||||||||||||||||||||||
params. | string | null (comprimento mínimo: 1, comprimento máximo: 255)Expressão cron numérica de seis campos, avaliada em UTC: segundo, minuto, hora, dia do mês, mês e dia da semana. Suporta curingas, valores separados por vírgulas, intervalos e incrementos. Os disparos agendados devem ter um intervalo mínimo de 10 segundos entre si. O agendamento de Templates por cron está em prévia com acesso controlado. | ||||||||||||||||||||||||||||||||||||
params. | string (comprimento mínimo: 3, comprimento máximo: 200)Nome deste Template. Use de 3 a 200 letras latinas minúsculas, números ou hifens. O nome Padrão de validação (expressão 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 único e aleatório incluído nos parâmetros da requisição assinada para tornar cada assinatura única e evitar a reutilização acidental de assinaturas. | ||||||||||||||||||||||||||||||||||||
params. | 0 | 1Use | ||||||||||||||||||||||||||||||||||||
params. | object | stringAssembly Instructions armazenadas neste Template. Prefira o objeto JSON estruturado; uma string codificada em JSON continua sendo aceita por compatibilidade. Qualquer um dos esquemas a seguir pode ser aplicado: objectAssembly Instructions estruturadas armazenadas neste Template.
stringstringAssembly Instructions codificadas em JSON, mantidas para compatibilidade com clientes. Padrão de validação (expressão 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 por quanto tempo os resultados de transcodificação são mantidos para Assemblies criadas a partir deste Template. |
Parâmetros de requisição por método de autenticação
Com parâmetros assinados
Inclua sua Auth Key como params.auth.key. Ao assinar a requisição, inclua um timestamp futuro em params.auth.expires e envie a assinatura no campo separado signature. As definições de campos abaixo usam caminhos dentro de params.
Esquema JSON completo
params: Somente os campos listados para este objeto são aceitos.
Usa as definições de campo acima: 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
Com um token bearer
Envie o token bearer no cabeçalho Authorization. Você pode omitir params.auth e o campo signature separado. Os demais parâmetros obrigatórios continuam se aplicando. As definições de campos abaixo usam caminhos dentro de params.
Esquema JSON completo
params: Somente os campos listados para este objeto são aceitos.
Usa as definições de campo acima: 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 e descrição |
|---|---|
params. | Contém a chave de API da Transloadit e os metadados de autenticação por assinatura para uma requisição de Template.
|
params. | stringTimestamp de expiração no formato ISO 8601 situado no futuro. Obrigatório quando uma requisição é assinada ou exige autenticação por assinatura; requisições autenticadas por bearer podem omiti-lo. |
params. | stringChave de API da Transloadit usada para autenticar as requisições |
Resposta
Veja um exemplo de corpo de resposta:
{
"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
}sucesso 2xx
Corpo da resposta JSON. application/json text/plain; charset=utf-8
Esquema do corpo da resposta
Esquema JSON completo
A resposta contém apenas os campos listados para este objeto.
| Campo | Tipo e descrição |
|---|---|
assembly_status_expiryobrigatório | null | string |
contentobrigatório | object | Array<qualquer valor> | string | number | boolean | nullQualquer um dos esquemas a seguir pode ser aplicado: objectobjectEsquema de propriedade adicionalqualquer valorArray<qualquer valor>Array<qualquer valor>Esquema do item do arrayqualquer valorstringnumberbooleannull |
cron_auth_key_id | string | nullPadrão de validação (expressão 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 (comprimento mínimo: 1, comprimento máximo: 255) |
idobrigatório | stringQualquer um dos esquemas a seguir pode ser aplicado: Variante 1: string (comprimento máximo: 32)stringPadrão de validação (expressão regular)^[\x00-\x7F]*$Variante 2: string (comprimento máximo: 32)stringPadrão de validação (expressão regular)^builtin\/[a-z0-9-]+(?:@[0-9a-z.-]+)?$ |
messageobrigatório | string (comprimento mínimo: 1) |
nameobrigatório | string (comprimento mínimo: 1, comprimento máximo: 255) |
okobrigatório | string (sempre: "TEMPLATE_UPDATED") |
require_signature_authobrigatório | 0 | 1 |
transcoding_result_expiryobrigatório | null | string |
Resposta de erro
Corpo da resposta JSON. application/json text/plain; charset=utf-8
Esquema do corpo da resposta
Esquema JSON completo
A resposta pode conter campos adicionais.
| Campo | Tipo e descrição |
|---|---|
assembly_id | string |
error | string (comprimento mínimo: 1) |
http_code | number | string
|
message | stringExplicação do erro legível por humanos. A redação pode variar; use o código |
reason | null | string | number | boolean | Array<qualquer valor> | objectQualquer um dos esquemas a seguir pode ser aplicado: nullstringnumberbooleanArray<qualquer valor>Array<qualquer valor>Esquema do item do arrayqualquer valorobjectobjectEsquema de propriedade adicionalqualquer valor |
HTTP 400
Corpo da resposta JSON. application/json text/plain; charset=utf-8
Esquema do corpo da resposta
Esquema JSON completo
Erros nomeados e o formato geral de erro
error: "TEMPLATE_VALIDATION_ERROR"
Seu Template não passou na validação.
A resposta pode conter campos adicionais.