Retensi Data
Kontrol berapa lama media hasil dan catatan permintaan Anda disimpan — per permintaan, dengan dua header independen
Ringkasan
Setiap pembuatan asinkron menghasilkan dua hal yang terpisah:
- Media hasil — file gambar, video, atau audio yang di-host Atlas Cloud untuk Anda dan dikembalikan sebagai URL output.
- Catatan permintaan — metadata tugas: model, prompt dan parameter Anda, status, timestamp, serta URL output. Inilah yang dibaca endpoint Prediksi ketika Anda melakukan polling terhadap sebuah tugas.
Anda dapat mengatur berapa lama masing-masing disimpan, per permintaan, dengan dua header:
| Header | Rentang | Mengatur |
|---|---|---|
X-AtlasCloud-Object-Expiration-Hours | 1–336 | Berapa lama file media hasil disimpan. |
X-AtlasCloud-Request-Retention-Hours | 0–336 | Berapa lama catatan permintaan disimpan. |
Keduanya opsional dan berupa bilangan bulat jam. 336 jam sama dengan 14 hari.
Kedua pengaturan bersifat independen
Menghapus catatan tidak menghapus medianya, dan menghapus media tidak menghapus catatannya. Atur salah satu, keduanya, atau tidak sama sekali — masing-masing mengikuti jamnya sendiri.
Mulai cepat
Kirim header tersebut bersama permintaan submit biasa:
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",
# hapus gambar hasil setelah 24 jam
"X-AtlasCloud-Object-Expiration-Hours": "24",
# buang catatan permintaan begitu tugas selesai
"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"]) # id tugas (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",
// hapus gambar hasil setelah 24 jam
"X-AtlasCloud-Object-Expiration-Hours": "24",
// buang catatan permintaan begitu tugas selesai
"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); // id tugas (session_id)Respons submit tidak berubah — Anda langsung menerima id tugas dan pembuatan berjalan persis seperti biasa. Retensi hanya menentukan apa yang terjadi setelah tugas selesai.
Kedua header bekerja pada ketiga endpoint submit asinkron:
POST /api/v1/model/generateImagePOST /api/v1/model/generateVideoPOST /api/v1/model/generateAudio
X-AtlasCloud-Object-Expiration-Hours
Menentukan berapa lama Atlas Cloud menyimpan file media yang dihasilkan permintaan ini, dihitung sejak tugas dikirimkan.
- Rentang:
1sampai336jam (1 jam hingga 14 hari). - Default bila tidak disertakan: 14 hari.
- Karena nilai maksimumnya sama dengan nilai default, header ini hanya bisa membuat media kedaluwarsa lebih cepat — tidak dapat memperpanjang penyimpanan melebihi 14 hari.
Setelah media kedaluwarsa, URL output-nya berhenti berfungsi (permintaan ke URL tersebut mengembalikan 404). Unduh atau salin apa pun yang perlu Anda simpan sebelum saat itu tiba.
Header ini mencakup output hasil dari permintaan tersebut. Header ini tidak mengubah retensi file yang Anda upload sebagai input (gambar referensi, video sumber, klip audio) — file-file itu mengikuti retensi Upload File standar.
X-AtlasCloud-Request-Retention-Hours
Menentukan berapa lama Atlas Cloud menyimpan catatan permintaan — baris metadata di balik endpoint Prediksi.
- Rentang:
0sampai336jam (hingga 14 hari). - Default bila tidak disertakan: catatan disimpan mengikuti kebijakan retensi standar platform.
0berarti "hapus segera setelah pembuatan selesai" — catatan dihapus tak lama setelah tugas mencapai status akhir (completed,failed, atautimeout).
Catatan tidak pernah dihapus di tengah proses
Sebuah catatan baru dihapus setelah tugas benar-benar selesai dan penagihannya serta pengiriman Webhook (bila ada) telah tuntas. Retensi 0 tidak pernah menghentikan pembuatan yang sedang berjalan atau membuat Anda kehilangan callback.
Setelah catatan dihapus, polling tugas tersebut dengan GET /api/v1/model/prediction/{id} tidak lagi mengembalikan payload hasil — output, parameter, dan detail error sudah hilang. Ambil apa yang Anda butuhkan (atau gunakan Webhook) sebelum catatan kedaluwarsa.
Menghapus catatan tidak menghapus medianya. Dengan X-AtlasCloud-Request-Retention-Hours: 0 dan tanpa header object, file hasil tetap bertahan penuh 14 hari di URL output-nya — Anda hanya perlu menyimpan sendiri URL tersebut, karena Atlas Cloud tidak lagi memiliki catatannya.
Memilih nilai
| Tujuan | Header |
|---|---|
| Tidak menyimpan apa pun lebih dari satu hari | X-AtlasCloud-Object-Expiration-Hours: 24 + X-AtlasCloud-Request-Retention-Hours: 24 |
| Meminimalkan metadata tersimpan, tetap menyimpan file | X-AtlasCloud-Request-Retention-Hours: 0 (simpan sendiri URL output-nya) |
| Media pratinjau berumur pendek, riwayat normal | X-AtlasCloud-Object-Expiration-Hours: 1 |
| Default platform | Jangan kirim header apa pun |
Validasi
Kedua header divalidasi sebelum apa pun terjadi — sebelum permintaan ditagih, sebelum file apa pun disimpan, dan sebelum penyedia model dipanggil. Jika sebuah nilai tidak valid, permintaan ditolak dengan HTTP 400, tidak ada tugas yang dibuat, dan Anda tidak dikenakan biaya.
| Aturan | Detail |
|---|---|
| Format | Bilangan bulat jam. Desimal (1.5), durasi (24h), dan teks lain ditolak. |
Rentang X-AtlasCloud-Object-Expiration-Hours | 1–336. 0 ditolak — gunakan 1 untuk retensi terpendek. |
Rentang X-AtlasCloud-Request-Retention-Hours | 0–336. 0 valid dan berarti "hapus setelah selesai". |
| Tidak disertakan atau kosong | Dianggap "tidak diatur" — nilai default yang berlaku. |
Contoh penolakan:
{
"code": 400,
"msg": "invalid X-AtlasCloud-Object-Expiration-Hours header: 500 is out of range [1, 336]"
}Jika Anda memanggil API dari browser, kedua nama header ini diizinkan oleh kebijakan CORS, sehingga permintaan lintas-origin dapat mengirimkannya.
Biaya
Retensi kustom gratis. Memperpendek retensi maupun mempertahankan nilai default tidak mengubah biaya sebuah pembuatan.
Praktik terbaik
- Unduh apa yang perlu Anda simpan. Perlakukan penyimpanan Atlas Cloud sebagai buffer pengiriman, bukan arsip — terutama bila masa berlaku object-nya pendek.
- Gunakan Webhook bersama
X-AtlasCloud-Request-Retention-Hours: 0. Callback mengirimkan hasil begitu tugas selesai, sehingga Anda tidak lagi membutuhkan catatannya setelah itu. - Simpan URL output di sisi Anda ketika Anda memperpendek retensi catatan tetapi tetap menyimpan medianya.
- Kirim header pada setiap permintaan yang ingin Anda atur. Header ini berlaku per permintaan; tidak ada pengaturan default untuk seluruh akun.
- Jangan mengandalkan URL dari catatan yang sudah dihapus. Setelah media kedaluwarsa, URL-nya mengembalikan
404— buat ulang alih-alih mencoba lagi tautan yang sudah mati.
Pemecahan masalah
| Gejala | Kemungkinan penyebab / tindakan |
|---|---|
400 ... is not a whole number of hours | Nilainya bukan bilangan bulat biasa. Kirim 24, bukan 24h atau 1.5. |
400 ... is out of range [1, 336] | Masa berlaku object minimal 1 jam dan maksimal 14 hari. |
400 ... is out of range [0, 336] | Retensi permintaan harus antara 0 dan 14 hari. |
URL output mengembalikan 404 lebih cepat dari perkiraan | Masa berlaku object yang Anda tetapkan sudah lewat. Medianya hilang; buat ulang jika masih Anda butuhkan. |
| Polling tidak mengembalikan output untuk tugas yang sudah selesai | Catatan permintaan telah dihapus oleh pengaturan retensi Anda. Gunakan Webhook, atau perpanjang retensinya. |
| Media masih tersedia setelah catatannya hilang | Wajar — kedua pengaturan bersifat independen. File bertahan sampai masa berlakunya sendiri habis. |
Referensi
- Endpoint:
POST /api/v1/model/generateImage,POST /api/v1/model/generateVideo,POST /api/v1/model/generateAudio. X-AtlasCloud-Object-Expiration-Hours: integer1–336; hanya untuk media hasil; default 14 hari; hanya bisa memperpendek.X-AtlasCloud-Request-Retention-Hours: integer0–336; hanya untuk catatan permintaan;0= hapus setelah mencapai status akhir dan tuntas.- Nilai tidak valid:
HTTP 400, tidak ada tugas yang dibuat, tidak ada biaya. - Terkait: Prediksi · Webhook · Upload File · Kebijakan Penghapusan Data