Retención de datos
Controla cuánto tiempo se almacenan tus archivos multimedia generados y tus registros de solicitud — por solicitud, con dos encabezados independientes
Descripción general
Cada generación asíncrona crea dos cosas distintas:
- Archivos multimedia generados — el archivo de imagen, video o audio que Atlas Cloud aloja por ti y devuelve como URL de salida.
- Un registro de solicitud — los metadatos de la tarea: el modelo, tu prompt y parámetros, el estado, las marcas de tiempo y las URLs de salida. Esto es lo que lee el endpoint de Predicciones cuando consultas una tarea.
Puedes definir cuánto tiempo se conserva cada uno, por solicitud, con dos encabezados:
| Encabezado | Rango | Controla |
|---|---|---|
X-AtlasCloud-Object-Expiration-Hours | 1–336 | Cuánto tiempo se almacenan los archivos multimedia generados. |
X-AtlasCloud-Request-Retention-Hours | 0–336 | Cuánto tiempo se conserva el registro de solicitud. |
Ambos son opcionales y se expresan en horas enteras. 336 horas son 14 días.
Los dos ajustes son independientes
Eliminar el registro no elimina los archivos multimedia, y eliminar los archivos multimedia no elimina el registro. Configura uno, ambos o ninguno — cada uno sigue su propio reloj.
Inicio rápido
Envía los encabezados con una solicitud de envío normal:
curl -X POST https://api.atlascloud.ai/api/v1/model/generateImage \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-H "X-AtlasCloud-Object-Expiration-Hours: 24" \
-H "X-AtlasCloud-Request-Retention-Hours: 0" \
-d '{
"model": "bytedance/seedream-v5.0-pro/text-to-image",
"prompt": "A calico kitten chasing a butterfly in a garden"
}'import requests
response = requests.post(
"https://api.atlascloud.ai/api/v1/model/generateImage",
headers={
"Authorization": "Bearer your-api-key",
"Content-Type": "application/json",
# elimina la imagen generada después de 24 horas
"X-AtlasCloud-Object-Expiration-Hours": "24",
# descarta el registro de solicitud en cuanto termine la tarea
"X-AtlasCloud-Request-Retention-Hours": "0",
},
json={
"model": "bytedance/seedream-v5.0-pro/text-to-image",
"prompt": "A calico kitten chasing a butterfly in a garden",
},
)
print(response.json()["data"]["id"]) # el id de la tarea (session_id)const res = await fetch("https://api.atlascloud.ai/api/v1/model/generateImage", {
method: "POST",
headers: {
Authorization: "Bearer your-api-key",
"Content-Type": "application/json",
// elimina la imagen generada después de 24 horas
"X-AtlasCloud-Object-Expiration-Hours": "24",
// descarta el registro de solicitud en cuanto termine la tarea
"X-AtlasCloud-Request-Retention-Hours": "0",
},
body: JSON.stringify({
model: "bytedance/seedream-v5.0-pro/text-to-image",
prompt: "A calico kitten chasing a butterfly in a garden",
}),
});
const { data } = await res.json();
console.log(data.id); // el id de la tarea (session_id)La respuesta al envío no cambia — recibes de inmediato un id de tarea y la generación se ejecuta exactamente como lo haría normalmente. La retención solo decide qué ocurre después de que la tarea termina.
Ambos encabezados funcionan en los tres endpoints de envío asíncrono:
POST /api/v1/model/generateImagePOST /api/v1/model/generateVideoPOST /api/v1/model/generateAudio
X-AtlasCloud-Object-Expiration-Hours
Define cuánto tiempo almacena Atlas Cloud los archivos multimedia que genera esta solicitud, contando desde el momento en que se envía la tarea.
- Rango: de
1a336horas (de 1 hora a 14 días). - Valor por defecto si se omite: 14 días.
- Como el máximo coincide con el valor por defecto, este encabezado solo puede hacer que los archivos multimedia expiren antes — no puede extender el almacenamiento más allá de 14 días.
Una vez que los archivos multimedia expiran, sus URLs de salida dejan de funcionar (las solicitudes a ellas devuelven 404). Descarga o copia todo lo que necesites conservar antes de ese momento.
Este encabezado cubre las salidas generadas por la solicitud. No cambia la retención de los archivos que tú hayas subido como entradas (imágenes de referencia, videos de origen, clips de audio) — esos siguen la retención estándar de subida de archivos.
X-AtlasCloud-Request-Retention-Hours
Define cuánto tiempo conserva Atlas Cloud el registro de solicitud — la fila de metadatos que hay detrás del endpoint de Predicciones.
- Rango: de
0a336horas (hasta 14 días). - Valor por defecto si se omite: el registro se conserva según la política de retención estándar de la plataforma.
0significa "eliminar en cuanto la generación termine" — el registro se elimina poco después de que la tarea alcance un estado terminal (completed,failedotimeout).
Los registros nunca se eliminan a mitad de vuelo
Un registro solo se elimina una vez que la tarea ha terminado realmente y su facturación y cualquier entrega de webhook se han liquidado. Una retención de 0 nunca interrumpe una generación en curso ni te cuesta un callback.
Una vez eliminado el registro, consultar esa tarea con GET /api/v1/model/prediction/{id} ya no devuelve la carga útil del resultado — las salidas, los parámetros y los detalles del error desaparecen. Recupera lo que necesites (o usa un webhook) antes de que el registro expire.
Eliminar el registro no elimina los archivos multimedia. Con X-AtlasCloud-Request-Retention-Hours: 0 y sin el encabezado de objeto, el archivo generado sigue viviendo sus 14 días completos en su URL de salida — simplemente tienes que guardar esa URL por tu cuenta, porque Atlas Cloud ya no tiene un registro de ella.
Elegir valores
| Objetivo | Encabezados |
|---|---|
| No conservar nada más de un día | X-AtlasCloud-Object-Expiration-Hours: 24 + X-AtlasCloud-Request-Retention-Hours: 24 |
| Minimizar los metadatos almacenados, conservar el archivo | X-AtlasCloud-Request-Retention-Hours: 0 (guarda tú mismo la URL de salida) |
| Archivos multimedia de vista previa efímeros, historial normal | X-AtlasCloud-Object-Expiration-Hours: 1 |
| Valores por defecto de la plataforma | No envíes ningún encabezado |
Validación
Ambos encabezados se validan antes de que ocurra nada — antes de que se facture la solicitud, antes de que se almacene ningún archivo y antes de que se llame al proveedor del modelo. Si un valor no es válido, la solicitud se rechaza con HTTP 400, no se crea ninguna tarea y no se te cobra.
| Regla | Detalle |
|---|---|
| Formato | Un número entero de horas. Los decimales (1.5), las duraciones (24h) y cualquier otro texto se rechazan. |
Rango de X-AtlasCloud-Object-Expiration-Hours | 1–336. 0 se rechaza — usa 1 para la retención más corta. |
Rango de X-AtlasCloud-Request-Retention-Hours | 0–336. 0 es válido y significa "eliminar al terminar". |
| Omitido o vacío | Se trata como "no establecido" — se aplica el valor por defecto. |
Ejemplo de rechazo:
{
"code": 400,
"msg": "invalid X-AtlasCloud-Object-Expiration-Hours header: 500 is out of range [1, 336]"
}Si llamas a la API desde un navegador, ambos nombres de encabezado están permitidos por la política CORS, por lo que las solicitudes de origen cruzado pueden enviarlos.
Coste
La retención personalizada es gratuita. Acortarla o mantener los valores por defecto no cambia lo que cuesta una generación.
Mejores prácticas
- Descarga lo que necesites conservar. Trata el almacenamiento de Atlas Cloud como un búfer de entrega, no como un archivo histórico — especialmente con una expiración de objeto corta.
- Usa webhooks con
X-AtlasCloud-Request-Retention-Hours: 0. El callback entrega el resultado en el momento en que la tarea termina, así que después nunca necesitas el registro. - Guarda la URL de salida de tu lado cuando acortes la retención del registro pero conserves los archivos multimedia.
- Envía los encabezados en cada solicitud que quieras cubrir. Son por solicitud; no existe un ajuste por defecto para toda la cuenta.
- No dependas de las URLs de un registro eliminado. Una vez que los archivos multimedia expiran, su URL devuelve
404— vuelve a generar en lugar de reintentar el enlace muerto.
Solución de problemas
| Síntoma | Causa probable / acción |
|---|---|
400 ... is not a whole number of hours | El valor no es un entero simple. Envía 24, no 24h ni 1.5. |
400 ... is out of range [1, 336] | La expiración de objeto debe ser de al menos 1 hora y como máximo 14 días. |
400 ... is out of range [0, 336] | La retención de solicitud debe estar entre 0 y 14 días. |
La URL de salida devuelve 404 antes de lo esperado | La expiración de objeto que estableciste ya transcurrió. Los archivos multimedia desaparecieron; vuelve a generarlos si aún los necesitas. |
| El polling no devuelve salidas para una tarea terminada | Tu ajuste de retención eliminó el registro de solicitud. Usa un webhook o alarga la retención. |
| Los archivos multimedia siguen disponibles después de que el registro desapareció | Es lo esperado — los dos ajustes son independientes. El archivo vive hasta su propia expiración. |
Referencia
- Endpoints:
POST /api/v1/model/generateImage,POST /api/v1/model/generateVideo,POST /api/v1/model/generateAudio. X-AtlasCloud-Object-Expiration-Hours: entero1–336; solo archivos multimedia generados; por defecto 14 días; solo puede acortar.X-AtlasCloud-Request-Retention-Hours: entero0–336; solo el registro de solicitud;0= eliminar una vez terminado y liquidado.- Valor no válido:
HTTP 400, no se crea ninguna tarea, sin cargo. - Relacionado: Predicciones · Webhooks · Subir archivos · Política de eliminación de datos