Mover o renombrar un activo DAM
Mueve o renombra un activo DAM sin modificar su objeto almacenado.
https://api2.transloadit.com/ dam/ assets/ {assetId}Este endpoint está en fase alfa. Su URL, sus parámetros, sus respuestas y su comportamiento pueden cambiar sustancialmente y hacer que las integraciones existentes dejen de funcionar.
Antes de llamar a este endpoint, obtén los IDs de los activos existentes en el mismo Workspace que la Auth Key utilizada para la solicitud.
Para los archivos almacenados con /transloadit/store, recupera su Assembly Status y espera a que sea ASSEMBLY_COMPLETED. En los arrays results[stepName] devueltos, conserva los valores de workspace, asset_id, version_id y el valor devuelto de path de cada archivo almacenado. El id habitual del archivo no es su ID de activo de Storage. Usa asset_id para ASSET_ID o params.asset_ids en los ejemplos siguientes.
Usa asset_id para seguir un activo a través de movimientos y cambios de nombre nativos. Añade version_id al importar para seleccionar los mismos bytes retenidos tras una sobrescritura. Una ruta guardada es una ubicación mutable, no una referencia inmutable. Las reglas de acceso y retención de versiones siguen siendo aplicables.
Para un destino distinto de la raíz, debes conocer de antemano el ID de la carpeta existente en el mismo Workspace. Una respuesta de movimiento o cambio de nombre guardada previamente puede proporcionar este ID: folder_id de una respuesta para un solo activo o assets[].folder_id de una respuesta de movimiento en bloque. Estas respuestas describen la carpeta después de esa operación; no son una API para descubrir carpetas.
Si conoces las rutas en lugar de los IDs de las carpetas, usa Mover un archivo o una carpeta de Storage. La carpeta principal de destino debe existir de antemano. Para mover un activo a la raíz con este endpoint basado en IDs, usa destination_folder_id: null.
Incluye al menos uno de los parámetros filename o destination_folder_id dentro de params. El nombre de archivo debe ser un nombre sin ruta de carpeta.
Para cambiar el nombre de un activo en su carpeta actual, envía solo filename dentro de params, como en el ejemplo de solicitud siguiente.
Para mover el activo a la raíz en su lugar, incluye explícitamente destination_folder_id: null:
{ "destination_folder_id": null, "filename": "renamed.jpg" }
Para otra carpeta, sustituye null por el ID de esa carpeta. Omitir el parámetro y usar null son operaciones diferentes.
Límites de la ruta del activo
La ruta de destino completa (carpetas más nombre de archivo) no debe superar los 512 puntos de código Unicode ni los 1024 bytes UTF-8 después de la normalización. Un nombre de archivo que por sí solo cumple estos límites puede superarlos dentro de una carpeta anidada.
Ejemplo de solicitud
Establece ASSET_ID en el valor de tu recurso sin aplicar codificación porcentual.
Ejecuta esta solicitud en una shell 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 shell de confianza del lado del servidor con curl y jq, establece TRANSLOADIT_KEY y TRANSLOADIT_SECRET en los valores de 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 requeridos por 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=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
Mantén abierta esta shell y ejecuta la solicitud siguiente. Reutiliza el token mientras siga siendo 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"}'
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: dam: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
assetId(segmento de ruta), obligatorio. patrón:^[A-Za-z0-9_-]{21}[AQgw]$, longitud mínima: 22, longitud máxima: 22
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.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 mutación de DAM.
|
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 la carpeta de destino. Establécelo en Puede aplicarse cualquiera de los esquemas siguientes: stringstringIdentificador DAM canónico de 22 caracteres Base64URL que distingue entre mayúsculas y minúsculas. Patrón de validación (expresión regular)^[A-Za-z0-9_-]{21}[AQgw]$null |
params. | string (longitud mínima: 1, longitud máxima: 255)Nuevo nombre de archivo sin una ruta de carpeta. Los nombres se normalizan a Unicode NFC y siguen distinguiendo entre mayúsculas y minúsculas. Se rechazan los nombres compuestos únicamente por espacios en blanco, los nombres |
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. |
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.auth, params.destination_folder_id, params.filename, params.nonce
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.destination_folder_id, params.filename, params.nonce
| Campo | Tipo y descripción |
|---|---|
params. | Contiene la clave de API de Transloadit y los metadatos de Signature Authentication para una mutación de DAM.
|
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:
{
"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"
}é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 |
|---|---|
assetobligatorio |
|
asset.obligatorio | stringID estable del activo. Se conserva tras los movimientos y cambios de nombre nativos; úsalo sin una versión para seleccionar los bytes actuales. Patrón de validación (expresión regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
asset. | booleanIndica si la imagen tiene un canal alfa, aunque todos sus píxeles sean opacos. Está presente cuando la extracción de ThumbHash se realiza correctamente; su ausencia significa que se desconoce. |
asset. | integer (mínimo exclusivo: 0, máximo: 9007199254740991)Altura de visualización en píxeles, después de aplicar la orientación EXIF, cuando se conoce. |
asset. | stringSuma de comprobación MD5 en minúsculas de los bytes almacenados, cuando esté disponible. Patrón de validación (expresión regular)^[a-f0-9]{32}$ |
asset.obligatorio | null | stringTipo MIME de los bytes almacenados, o null si se desconoce. |
asset.obligatorio | string (longitud mínima: 1)Ubicación actual mutable relativa al Workspace. Un cambio de nombre deja obsoleta la ruta anterior; una sobrescritura puede cambiar los bytes en esta ruta. |
asset. | stringSuma de comprobación SHA-256 en minúsculas de los bytes almacenados, cuando esté disponible. Patrón de validación (expresión regular)^[a-f0-9]{64}$ |
asset.obligatorio | integer (mínimo: 0, máximo: 9007199254740991)Tamaño del archivo almacenado en bytes. |
asset. | stringThumbHash codificado en Base64 de los píxeles mostrados de esta versión, cuando se solicita con output_meta.thumbhash en el Step que la produce. Son datos de imagen: aplica los mismos controles de acceso que al original. Patrón de validación (expresión regular)^(?:[A-Za-z0-9+/]{4}){1,15}(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)$ |
asset.obligatorio | stringVersión inmutable exacta de este activo. Combínala con asset_id para seleccionar los bytes retenidos; si falta la versión, nunca se recurre a la versión actual. Patrón de validación (expresión regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
asset. | integer (mínimo exclusivo: 0, máximo: 9007199254740991)Ancho de visualización en píxeles, después de aplicar la orientación EXIF, si se conoce. |
asset.obligatorio | string (longitud mínima: 1)Slug del Workspace al que pertenece este activo. Autentícate para el mismo Workspace al leerlo o gestionarlo. |
asset_idobligatorio | stringIdentificador DAM canónico de 22 caracteres Base64URL que distingue entre mayúsculas y minúsculas. Patrón de validación (expresión regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
deleted_atobligatorio | string | nullPatrón de validación (expresión 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)$ |
filenameobligatorio | string (longitud mínima: 1) |
folder_idobligatorio | string | nullIdentificador DAM canónico de 22 caracteres Base64URL que distingue entre mayúsculas y minúsculas. Patrón de validación (expresión regular)^[A-Za-z0-9_-]{21}[AQgw]$ |
messageobligatorio | string (longitud mínima: 1) |
okobligatorio | string (siempre: "DAM_ASSET_MOVED") |
pathobligatorio | string (longitud mínima: 1) |
updated_atobligatorio | stringPatrón de validación (expresión 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)$ |
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: "DAM_INVALID_REQUEST"
Los parámetros de la solicitud de almacenamiento no son válidos.
La respuesta puede contener campos adicionales.
Formato general de error
HTTP 404
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: "DAM_RESOURCE_NOT_FOUND"
No se encontró el recurso DAM solicitado.
La respuesta puede contener campos adicionales.
Formato general de error
HTTP 409
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: "DAM_MUTATION_CONFLICT"
La mutación de DAM entra en conflicto con un recurso existente.
La respuesta puede contener campos adicionales.
Formato general de error
HTTP 500
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: "DAM_MUTATION_FAILED"
No se pudo completar la mutación de DAM. Inténtalo de nuevo.
La respuesta puede contener campos adicionales.