Conservazione dei dati

Controlla per quanto tempo vengono archiviati i media generati e i record delle richieste — per singola richiesta, con due header indipendenti

Panoramica

Ogni generazione asincrona crea due elementi distinti:

  • Media generati — il file di immagine, video o audio che Atlas Cloud ospita per te e restituisce come URL di output.
  • Un record della richiesta — i metadati dell'attività: il modello, il tuo prompt e i parametri, lo stato, i timestamp e gli URL di output. È ciò che l'endpoint Predizioni legge quando interroghi un'attività.

Puoi impostare per quanto tempo ciascuno viene conservato, per singola richiesta, con due header:

HeaderIntervalloControlla
X-AtlasCloud-Object-Expiration-Hours1336Per quanto tempo vengono archiviati i file multimediali generati.
X-AtlasCloud-Request-Retention-Hours0336Per quanto tempo viene conservato il record della richiesta.

Entrambi sono numeri interi di ore opzionali. 336 ore corrispondono a 14 giorni.

Le due impostazioni sono indipendenti

Eliminare il record non elimina i media, ed eliminare i media non elimina il record. Imposta l'uno, l'altro, entrambi o nessuno — ognuno segue il proprio orologio.

Avvio rapido

Invia gli header con una normale richiesta di invio:

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 l'immagine generata dopo 24 ore
        "X-AtlasCloud-Object-Expiration-Hours": "24",
        # elimina il record della richiesta non appena l'attività termina
        "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 dell'attività (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 l'immagine generata dopo 24 ore
    "X-AtlasCloud-Object-Expiration-Hours": "24",
    // elimina il record della richiesta non appena l'attività termina
    "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 dell'attività (session_id)

La risposta di invio è invariata — ricevi subito un id dell'attività e la generazione procede esattamente come al solito. La conservazione decide solo cosa accade dopo il termine dell'attività.

Entrambi gli header funzionano su tutti e tre gli endpoint di invio asincrono:

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

X-AtlasCloud-Object-Expiration-Hours

Imposta per quanto tempo Atlas Cloud archivia i file multimediali generati da questa richiesta, a partire dal momento in cui l'attività viene inviata.

  • Intervallo: da 1 a 336 ore (da 1 ora a 14 giorni).
  • Valore predefinito se omesso: 14 giorni.
  • Poiché il massimo coincide con il valore predefinito, questo header può solo far scadere i media prima — non può estendere l'archiviazione oltre i 14 giorni.

Una volta scaduti i media, i loro URL di output smettono di funzionare (le richieste restituiscono 404). Scarica o copia tutto ciò che vuoi conservare prima di quel momento.

Questo header riguarda gli output generati dalla richiesta. Non modifica la conservazione dei file che tu hai caricato come input (immagini di riferimento, video sorgente, clip audio) — questi seguono la conservazione standard del caricamento file.

X-AtlasCloud-Request-Retention-Hours

Imposta per quanto tempo Atlas Cloud conserva il record della richiesta — la riga di metadati dietro l'endpoint Predizioni.

  • Intervallo: da 0 a 336 ore (fino a 14 giorni).
  • Valore predefinito se omesso: il record viene conservato secondo la politica di conservazione standard della piattaforma.
  • 0 significa "elimina non appena la generazione è conclusa" — il record viene rimosso poco dopo che l'attività raggiunge uno stato terminale (completed, failed o timeout).

I record non vengono mai eliminati durante l'esecuzione

Un record viene rimosso solo dopo che l'attività è effettivamente terminata e che la relativa fatturazione ed eventuale consegna del webhook sono state finalizzate. Una conservazione pari a 0 non interrompe mai una generazione in corso né ti fa perdere un callback.

Una volta eliminato il record, interrogare quell'attività con GET /api/v1/model/prediction/{id} non restituisce più il payload del risultato — output, parametri e dettagli degli errori non ci sono più. Recupera ciò che ti serve (o usa un webhook) prima che il record scada.

Eliminare il record non elimina i media. Con X-AtlasCloud-Request-Retention-Hours: 0 e senza l'header relativo agli oggetti, il file generato resta comunque disponibile per i suoi 14 giorni completi al proprio URL di output — semplicemente devi conservare tu quell'URL, perché Atlas Cloud non ne ha più traccia.

Scelta dei valori

ObiettivoHeader
Non conservare nulla per più di un giornoX-AtlasCloud-Object-Expiration-Hours: 24 + X-AtlasCloud-Request-Retention-Hours: 24
Ridurre al minimo i metadati archiviati, conservando il fileX-AtlasCloud-Request-Retention-Hours: 0 (salva tu l'URL di output)
Media di anteprima di breve durata, cronologia normaleX-AtlasCloud-Object-Expiration-Hours: 1
Valori predefiniti della piattaformaNon inviare alcun header

Validazione

Entrambi gli header vengono validati prima che accada qualsiasi cosa — prima che la richiesta venga addebitata, prima che qualsiasi file venga archiviato e prima che il provider del modello venga chiamato. Se un valore non è valido, la richiesta viene rifiutata con HTTP 400, nessuna attività viene creata e non ti viene addebitato nulla.

RegolaDettaglio
FormatoUn numero intero di ore. Decimali (1.5), durate (24h) e altro testo vengono rifiutati.
Intervallo di X-AtlasCloud-Object-Expiration-Hours1336. 0 viene rifiutato — usa 1 per la conservazione più breve.
Intervallo di X-AtlasCloud-Request-Retention-Hours0336. 0 è valido e significa "elimina una volta terminato".
Omesso o vuotoTrattato come "non impostato" — si applica il valore predefinito.

Esempio di rifiuto:

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

Se chiami l'API da un browser, entrambi i nomi degli header sono consentiti dalla politica CORS, quindi le richieste cross-origin possono inviarli.

Costo

La conservazione personalizzata è gratuita. Accorciarla o mantenere i valori predefiniti non modifica il costo di una generazione.

Buone pratiche

  • Scarica ciò che vuoi conservare. Considera l'archiviazione di Atlas Cloud come un buffer di consegna, non come un archivio — soprattutto con una scadenza degli oggetti breve.
  • Usa i webhook con X-AtlasCloud-Request-Retention-Hours: 0. Il callback consegna il risultato nel momento in cui l'attività termina, quindi non hai più bisogno del record.
  • Conserva l'URL di output dalla tua parte quando accorci la conservazione del record ma mantieni i media.
  • Invia gli header su ogni richiesta che vuoi coprire. Sono per singola richiesta; non esiste un'impostazione predefinita a livello di account.
  • Non fare affidamento sugli URL di un record eliminato. Una volta scaduti i media, il loro URL restituisce 404 — rigenera invece di riprovare con il link ormai inattivo.

Risoluzione dei problemi

SintomoCausa probabile / azione
400 ... is not a whole number of hoursIl valore non è un semplice numero intero. Invia 24, non 24h o 1.5.
400 ... is out of range [1, 336]La scadenza degli oggetti deve essere di almeno 1 ora e al massimo 14 giorni.
400 ... is out of range [0, 336]La conservazione della richiesta deve essere compresa tra 0 e 14 giorni.
L'URL di output restituisce 404 prima del previstoLa scadenza degli oggetti che hai impostato è trascorsa. I media non ci sono più; rigenerali se ti servono ancora.
Il polling non restituisce output per un'attività terminataIl record della richiesta è stato eliminato dalla tua impostazione di conservazione. Usa un webhook oppure allunga la conservazione.
I media sono ancora disponibili dopo la scomparsa del recordÈ previsto — le due impostazioni sono indipendenti. Il file resta disponibile fino alla propria scadenza.

Riferimento

  • Endpoint: POST /api/v1/model/generateImage, POST /api/v1/model/generateVideo, POST /api/v1/model/generateAudio.
  • X-AtlasCloud-Object-Expiration-Hours: intero 1336; solo media generati; valore predefinito 14 giorni; può solo accorciare.
  • X-AtlasCloud-Request-Retention-Hours: intero 0336; solo record della richiesta; 0 = elimina una volta terminato e finalizzato.
  • Valore non valido: HTTP 400, nessuna attività creata, nessun addebito.
  • Correlati: Predizioni · Webhook · Carica file · Politica di cancellazione dei dati