Mover ou renomear um ativo de DAM
Move ou renomeia um ativo DAM sem alterar seu objeto armazenado.
https://api2.transloadit.com/ dam/ assets/ {assetId}Este endpoint está em fase alfa. Sua URL, seus parâmetros, suas respostas e seu comportamento podem mudar substancialmente e interromper o funcionamento de integrações existentes.
Antes de chamar este endpoint, obtenha os IDs dos ativos existentes no mesmo Workspace da Auth Key usada na requisição.
Para arquivos armazenados com /transloadit/store, obtenha o Assembly Status deles e aguarde ASSEMBLY_COMPLETED. Nos arrays results[stepName] retornados, guarde os valores de workspace, asset_id, version_id e path retornados para cada arquivo armazenado. O id comum do arquivo não é seu ID de ativo de armazenamento. Use asset_id como ASSET_ID ou em params.asset_ids nos exemplos abaixo.
Use asset_id para acompanhar um ativo em operações nativas de movimentação e renomeação. Adicione version_id ao importar para selecionar os mesmos bytes retidos após uma sobrescrita. Um caminho salvo é uma localização mutável, não uma referência imutável. As condições de acesso e retenção de versões continuam se aplicando.
Para um destino que não seja a raiz, você já deve conhecer o ID da pasta existente no mesmo Workspace. Uma resposta de movimentação ou renomeação salva anteriormente pode fornecer esse ID: folder_id de uma resposta para um único ativo ou assets[].folder_id de uma resposta de movimentação em massa. Essas respostas descrevem a pasta após aquela operação; elas não são uma API de descoberta de pastas.
Se você conhece os caminhos em vez dos IDs das pastas, use Mover um arquivo ou uma pasta de armazenamento. A pasta pai de destino já deve existir. Para mover um ativo para a raiz com este endpoint baseado em IDs, use destination_folder_id: null.
Inclua pelo menos um dos parâmetros filename ou destination_folder_id dentro de params. O nome do arquivo deve ser um nome sem caminho de pasta.
Para renomear um ativo na pasta atual, envie apenas filename dentro de params, como no exemplo de requisição abaixo.
Para mover o ativo para a raiz, inclua explicitamente destination_folder_id: null:
{ "destination_folder_id": null, "filename": "renamed.jpg" }
Para outra pasta, substitua null pelo ID dela. A omissão e null são operações diferentes.
Limites do caminho do ativo
O caminho completo de destino (pastas mais nome do arquivo) deve respeitar os limites de 512 pontos de código Unicode e 1024 bytes em UTF-8 após a normalização. Um nome de arquivo que, sozinho, respeita os limites ainda pode excedê-los em uma pasta aninhada.
Exemplo de requisição
Defina ASSET_ID 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 de portador adequado em TRANSLOADIT_TOKEN. Se precisar de um token, expanda a configuração abaixo.
Precisa de um token de portador?
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 as duas credenciais e o token resultante em segredo; nunca execute esta configuração em código de 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=dam: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 PATCH \
--url "https://api2.transloadit.com/dam/assets/${ASSET_ID:?Set ASSET_ID}" \
--header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
--data-urlencode 'params={"filename":"renamed.jpg"}'
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: dam: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
assetId(segmento de caminho), obrigatório. padrão:^[A-Za-z0-9_-]{21}[AQgw]$, comprimento mínimo: 22, comprimento máximo: 22
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.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 mutação de DAM.
|
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 | 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. | string | nullID da pasta de destino. Defina como Qualquer um dos esquemas a seguir pode ser aplicado: stringstringIdentificador DAM Base64URL canônico de 22 caracteres, sensível a maiúsculas e minúsculas. Padrão de validação (expressão regular)^[A-Za-z0-9_-]{21}[AQgw]$nullnull |
params. | string (comprimento mínimo: 1, comprimento máximo: 255)Novo nome de arquivo, sem caminho de pasta. Os nomes são normalizados para Unicode NFC e continuam diferenciando maiúsculas de minúsculas. Nomes compostos apenas por espaços em branco, |
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.auth, params.destination_folder_id, params.filename
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.destination_folder_id, params.filename
| Campo | Tipo e descrição |
|---|---|
params. | Contém a chave de API da Transloadit e os metadados de autenticação por assinatura para uma mutação de DAM.
|
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 |
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. |
Resposta
Veja um exemplo de corpo de resposta:
{
"asset": {
"asset_id": "AAAAAAAAAAAAAAAAAAAAAA",
"height": 600,
"mime": "image/jpeg",
"path": "renamed.jpg",
"size": 12345,
"version_id": "AAAAAAAAAAAAAAAAAAAAAQ",
"width": 800,
"workspace": "example-workspace"
},
"asset_id": "AAAAAAAAAAAAAAAAAAAAAA",
"deleted_at": null,
"filename": "renamed.jpg",
"folder_id": null,
"message": "The DAM asset was successfully moved.",
"ok": "DAM_ASSET_MOVED",
"path": "renamed.jpg",
"updated_at": "2026-09-12T10:00:00.000Z"
}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 |
|---|---|
assetobrigatório |
|
asset.obrigatório | stringID estável do ativo. Ele é preservado em movimentações e renomeações nativas; use-o sem uma versão para selecionar os bytes atuais. Padrão de validação (expressão regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
asset. | integer (mínimo exclusivo: 0, máximo: 9007199254740991)Altura de exibição em pixels, após aplicar a orientação EXIF, quando conhecida. |
asset. | stringSoma de verificação MD5 em letras minúsculas dos bytes armazenados, quando disponível. Padrão de validação (expressão regular)^[a-f0-9]{32}$ |
asset.obrigatório | null | stringTipo MIME dos bytes armazenados, ou null quando desconhecido. |
asset.obrigatório | string (comprimento mínimo: 1)Localização atual mutável em relação ao Workspace. Uma renomeação torna o caminho anterior desatualizado; uma sobrescrita pode alterar os bytes nesse caminho. |
asset. | stringSoma de verificação SHA-256 em letras minúsculas dos bytes armazenados, quando disponível. Padrão de validação (expressão regular)^[a-f0-9]{64}$ |
asset.obrigatório | integer (mínimo: 0, máximo: 9007199254740991)Tamanho do arquivo armazenado em bytes. |
asset.obrigatório | stringVersão exata e imutável deste ativo. Use em conjunto com asset_id para selecionar os bytes retidos; se a versão estiver ausente, a versão atual nunca será usada como alternativa. Padrão de validação (expressão regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
asset. | integer (mínimo exclusivo: 0, máximo: 9007199254740991)Largura de exibição em pixels, após a aplicação da orientação EXIF, quando conhecida. |
asset.obrigatório | string (comprimento mínimo: 1)Slug do Workspace ao qual este ativo pertence. Autentique-se no mesmo Workspace ao ler ou gerenciar este ativo. |
asset_idobrigatório | stringIdentificador DAM Base64URL canônico de 22 caracteres, sensível a maiúsculas e minúsculas. Padrão de validação (expressão regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
deleted_atobrigatório | string | nullPadrão de validação (expressão regular)^(([0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|1[0-9]|2[0-8])))T([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9](\.[0-9]+)?)?(Z)$ |
filenameobrigatório | string (comprimento mínimo: 1) |
folder_idobrigatório | string | nullIdentificador DAM Base64URL canônico de 22 caracteres, sensível a maiúsculas e minúsculas. Padrão de validação (expressão regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
messageobrigatório | string (comprimento mínimo: 1) |
okobrigatório | string (sempre: "DAM_ASSET_MOVED") |
pathobrigatório | string (comprimento mínimo: 1) |
updated_atobrigatório | stringPadrão de validação (expressão regular)^(([0-9][0-9][2468][048]|[0-9][0-9][13579][26]|[0-9][0-9]0[48]|[02468][048]00|[13579][26]00)-02-29|[0-9]{4}-((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|(02)-(0[1-9]|1[0-9]|2[0-8])))T([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9](\.[0-9]+)?)?(Z)$ |
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: nullnullstringstringnumbernumberbooleanbooleanArray<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: "DAM_INVALID_REQUEST"
Os parâmetros da solicitação de armazenamento são inválidos.
A resposta pode conter campos adicionais.
Formato geral de erro
HTTP 404
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: "DAM_RESOURCE_NOT_FOUND"
O recurso DAM solicitado não foi encontrado.
A resposta pode conter campos adicionais.
Formato geral de erro
HTTP 409
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: "DAM_MUTATION_CONFLICT"
A mutação do DAM conflita com um recurso existente.
A resposta pode conter campos adicionais.
Formato geral de erro
HTTP 500
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: "DAM_MUTATION_FAILED"
Não foi possível concluir a mutação do DAM. Tente novamente.
A resposta pode conter campos adicionais.