Conservation des données

Contrôlez la durée de stockage de vos médias générés et de vos enregistrements de requêtes — par requête, avec deux en-têtes indépendants

Vue d'ensemble

Chaque génération asynchrone crée deux choses distinctes :

  • Les médias générés — le fichier image, vidéo ou audio qu'Atlas Cloud héberge pour vous et renvoie sous forme d'URL de sortie.
  • Un enregistrement de requête — les métadonnées de la tâche : le modèle, votre prompt et vos paramètres, le statut, les horodatages et les URL de sortie. C'est ce que lit le point d'accès Prédictions lorsque vous interrogez une tâche.

Vous pouvez définir la durée de conservation de chacun, par requête, à l'aide de deux en-têtes :

En-têtePlageContrôle
X-AtlasCloud-Object-Expiration-Hours1336La durée de stockage des fichiers médias générés.
X-AtlasCloud-Request-Retention-Hours0336La durée de conservation de l'enregistrement de requête.

Les deux sont facultatifs et s'expriment en nombres entiers d'heures. 336 heures correspondent à 14 jours.

Les deux réglages sont indépendants

Supprimer l'enregistrement ne supprime pas les médias, et supprimer les médias ne supprime pas l'enregistrement. Définissez l'un, l'autre, les deux ou aucun — chacun suit sa propre horloge.

Démarrage rapide

Envoyez les en-têtes avec une requête de soumission normale :

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",
        # supprimer l'image générée après 24 heures
        "X-AtlasCloud-Object-Expiration-Hours": "24",
        # supprimer l'enregistrement de requête dès que la tâche se termine
        "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"])  # l'id de la tâche (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",
    // supprimer l'image générée après 24 heures
    "X-AtlasCloud-Object-Expiration-Hours": "24",
    // supprimer l'enregistrement de requête dès que la tâche se termine
    "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); // l'id de la tâche (session_id)

La réponse de soumission est inchangée — vous recevez immédiatement un id de tâche et la génération s'exécute exactement comme d'habitude. La conservation décide uniquement de ce qui se passe après la fin de la tâche.

Les deux en-têtes fonctionnent sur les trois points d'accès de soumission asynchrone :

  • POST /api/v1/model/generateImage
  • POST /api/v1/model/generateVideo
  • POST /api/v1/model/generateAudio

X-AtlasCloud-Object-Expiration-Hours

Définit la durée pendant laquelle Atlas Cloud stocke les fichiers médias générés par cette requête, comptée à partir du moment où la tâche est soumise.

  • Plage : de 1 à 336 heures (de 1 heure à 14 jours).
  • Valeur par défaut si l'en-tête est omis : 14 jours.
  • Comme le maximum est égal à la valeur par défaut, cet en-tête ne peut que faire expirer les médias plus tôt — il ne peut pas prolonger le stockage au-delà de 14 jours.

Une fois les médias expirés, leurs URL de sortie cessent de fonctionner (les requêtes vers celles-ci renvoient 404). Téléchargez ou copiez avant cette échéance tout ce que vous souhaitez conserver.

Cet en-tête couvre les sorties générées par la requête. Il ne modifie pas la conservation des fichiers que vous avez téléversés en entrée (images de référence, vidéos sources, extraits audio) — ceux-ci suivent la conservation standard décrite dans Téléverser des fichiers.

X-AtlasCloud-Request-Retention-Hours

Définit la durée pendant laquelle Atlas Cloud conserve l'enregistrement de requête — la ligne de métadonnées derrière le point d'accès Prédictions.

  • Plage : de 0 à 336 heures (jusqu'à 14 jours).
  • Valeur par défaut si l'en-tête est omis : l'enregistrement est conservé selon la politique de conservation standard de la plateforme.
  • 0 signifie « supprimer dès que la génération est terminée » — l'enregistrement est retiré peu après que la tâche a atteint un état terminal (completed, failed ou timeout).

Les enregistrements ne sont jamais supprimés en cours de route

Un enregistrement n'est retiré qu'une fois la tâche réellement terminée et sa facturation ainsi que toute distribution de webhook réglées. Une conservation de 0 n'interrompt jamais une génération en cours et ne vous prive jamais d'un rappel.

Une fois l'enregistrement supprimé, interroger cette tâche via GET /api/v1/model/prediction/{id} ne renvoie plus la charge utile du résultat — les sorties, les paramètres et les détails de l'erreur ont disparu. Récupérez ce dont vous avez besoin (ou utilisez un webhook) avant l'expiration de l'enregistrement.

Supprimer l'enregistrement ne supprime pas les médias. Avec X-AtlasCloud-Request-Retention-Hours: 0 et sans en-tête d'objet, le fichier généré vit toujours ses 14 jours complets à son URL de sortie — vous devez simplement conserver cette URL vous-même, car Atlas Cloud n'en garde plus aucune trace.

Choisir les valeurs

ObjectifEn-têtes
Ne rien conserver plus d'une journéeX-AtlasCloud-Object-Expiration-Hours: 24 + X-AtlasCloud-Request-Retention-Hours: 24
Réduire au minimum les métadonnées stockées, conserver le fichierX-AtlasCloud-Request-Retention-Hours: 0 (enregistrez vous-même l'URL de sortie)
Médias d'aperçu éphémères, historique normalX-AtlasCloud-Object-Expiration-Hours: 1
Valeurs par défaut de la plateformeN'envoyez aucun des deux en-têtes

Validation

Les deux en-têtes sont validés avant toute action — avant que la requête ne soit facturée, avant qu'un fichier ne soit stocké et avant que le fournisseur de modèle ne soit appelé. Si une valeur est invalide, la requête est rejetée avec HTTP 400, aucune tâche n'est créée et vous n'êtes pas facturé.

RègleDétail
FormatUn nombre entier d'heures. Les décimales (1.5), les durées (24h) et tout autre texte sont rejetés.
Plage de X-AtlasCloud-Object-Expiration-Hours1336. 0 est rejeté — utilisez 1 pour la conservation la plus courte.
Plage de X-AtlasCloud-Request-Retention-Hours0336. 0 est valide et signifie « supprimer une fois terminé ».
Omis ou videTraité comme « non défini » — la valeur par défaut s'applique.

Exemple de rejet :

{
  "code": 400,
  "msg": "invalid X-AtlasCloud-Object-Expiration-Hours header: 500 is out of range [1, 336]"
}

Si vous appelez l'API depuis un navigateur, les deux noms d'en-tête sont autorisés par la politique CORS : les requêtes cross-origin peuvent donc les envoyer.

Coût

La conservation personnalisée est gratuite. Raccourcir les durées ou conserver les valeurs par défaut ne change pas le coût d'une génération.

Bonnes pratiques

  • Téléchargez ce que vous souhaitez conserver. Considérez le stockage d'Atlas Cloud comme un tampon de livraison, pas comme une archive — surtout avec une expiration d'objet courte.
  • Utilisez les webhooks avec X-AtlasCloud-Request-Retention-Hours: 0. Le rappel livre le résultat dès la fin de la tâche : vous n'avez donc jamais besoin de l'enregistrement ensuite.
  • Stockez l'URL de sortie de votre côté lorsque vous raccourcissez la conservation de l'enregistrement tout en gardant les médias.
  • Envoyez les en-têtes sur chaque requête que vous souhaitez couvrir. Ils s'appliquent requête par requête ; il n'existe aucun réglage par défaut à l'échelle du compte.
  • Ne comptez pas sur les URL d'un enregistrement supprimé. Une fois les médias expirés, leur URL renvoie 404 — régénérez plutôt que de réessayer un lien mort.

Dépannage

SymptômeCause probable / action
400 ... is not a whole number of hoursLa valeur n'est pas un entier simple. Envoyez 24, pas 24h ni 1.5.
400 ... is out of range [1, 336]L'expiration d'objet doit être d'au moins 1 heure et d'au plus 14 jours.
400 ... is out of range [0, 336]La conservation de l'enregistrement doit être comprise entre 0 et 14 jours.
L'URL de sortie renvoie 404 plus tôt que prévuL'expiration d'objet que vous avez définie est écoulée. Les médias ont disparu ; régénérez-les si vous en avez encore besoin.
L'interrogation ne renvoie aucune sortie pour une tâche terminéeL'enregistrement de requête a été supprimé par votre réglage de conservation. Utilisez un webhook ou allongez la conservation.
Médias toujours disponibles après la disparition de l'enregistrementComportement attendu — les deux réglages sont indépendants. Le fichier vit jusqu'à sa propre expiration.

Référence

  • Points d'accès : POST /api/v1/model/generateImage, POST /api/v1/model/generateVideo, POST /api/v1/model/generateAudio.
  • X-AtlasCloud-Object-Expiration-Hours : entier 1336 ; médias générés uniquement ; 14 jours par défaut ; ne peut que raccourcir.
  • X-AtlasCloud-Request-Retention-Hours : entier 0336 ; enregistrement de requête uniquement ; 0 = supprimer une fois la tâche terminale et réglée.
  • Valeur invalide : HTTP 400, aucune tâche créée, aucun frais.
  • Voir aussi : Prédictions · Webhooks · Téléverser des fichiers · Politique de suppression des données