Хранение данных
Управляйте тем, как долго хранятся ваши сгенерированные медиафайлы и записи запросов — для каждого запроса, двумя независимыми заголовками
Обзор
Каждая асинхронная генерация создаёт две отдельные сущности:
- Сгенерированный медиафайл — изображение, видео или аудиофайл, который Atlas Cloud хранит для вас и возвращает в виде выходного URL.
- Запись запроса — метаданные задачи: модель, ваш промпт и параметры, статус, отметки времени и выходные URL. Именно это читает эндпоинт Предсказания, когда вы опрашиваете задачу.
Вы можете задать срок хранения каждой из них для каждого запроса двумя заголовками:
| Заголовок | Диапазон | Что задаёт |
|---|---|---|
X-AtlasCloud-Object-Expiration-Hours | 1–336 | Как долго хранятся сгенерированные медиафайлы. |
X-AtlasCloud-Request-Retention-Hours | 0–336 | Как долго хранится запись запроса. |
Оба заголовка необязательны и задаются целым числом часов. 336 часов — это 14 дней.
Две настройки независимы
Удаление записи не удаляет медиафайл, а удаление медиафайла не удаляет запись. Задайте одну из них, обе или ни одной — у каждой свой отсчёт времени.
Быстрый старт
Отправьте заголовки вместе с обычным запросом на создание задачи:
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"
}'Ответ на отправку задачи не меняется — вы сразу получаете id задачи, и генерация выполняется ровно так же, как обычно. Настройки хранения определяют только то, что происходит после завершения задачи.
Оба заголовка работают на всех трёх эндпоинтах асинхронной отправки:
POST /api/v1/model/generateImagePOST /api/v1/model/generateVideoPOST /api/v1/model/generateAudio
X-AtlasCloud-Object-Expiration-Hours
Задаёт, как долго Atlas Cloud хранит медиафайлы, созданные этим запросом, считая с момента отправки задачи.
- Диапазон: от
1до336часов (от 1 часа до 14 дней). - Значение по умолчанию (если заголовок не указан): 14 дней.
- Поскольку максимум совпадает со значением по умолчанию, этот заголовок может только приблизить момент удаления медиафайлов — продлить хранение сверх 14 дней он не может.
Как только срок хранения медиафайла истекает, его выходные URL перестают работать (запросы к ним возвращают 404). Скачайте или скопируйте всё, что нужно сохранить, до этого момента.
Этот заголовок распространяется на сгенерированные результаты запроса. Он не меняет срок хранения файлов, которые загрузили вы как входные данные (референсные изображения, исходные видео, аудиофрагменты) — для них действует стандартный срок хранения при загрузке файлов.
X-AtlasCloud-Request-Retention-Hours
Задаёт, как долго Atlas Cloud хранит запись запроса — строку метаданных, стоящую за эндпоинтом Предсказания.
- Диапазон: от
0до336часов (до 14 дней). - Значение по умолчанию (если заголовок не указан): запись хранится согласно стандартной политике хранения платформы.
0означает «удалить сразу после завершения генерации» — запись удаляется вскоре после того, как задача достигнет терминального состояния (completed,failedилиtimeout).
Записи никогда не удаляются в процессе выполнения
Запись удаляется только после того, как задача действительно завершилась, и её тарификация и доставка вебхука, если он был указан, завершены. Хранение 0 никогда не прерывает выполняющуюся генерацию и не лишает вас обратного вызова.
После удаления записи опрос этой задачи через GET /api/v1/model/prediction/{id} больше не возвращает результат — выходные данные, параметры и детали ошибки утрачены. Получите всё необходимое (или используйте вебхук) до истечения срока хранения записи.
Удаление записи не удаляет медиафайл. С X-AtlasCloud-Request-Retention-Hours: 0 и без заголовка объекта сгенерированный файл всё равно проживёт свои полные 14 дней по своему выходному URL — просто вам придётся хранить этот URL самостоятельно, потому что у Atlas Cloud больше нет записи о нём.
Выбор значений
| Цель | Заголовки |
|---|---|
| Ничего не хранить дольше суток | X-AtlasCloud-Object-Expiration-Hours: 24 + X-AtlasCloud-Request-Retention-Hours: 24 |
| Минимум хранимых метаданных, файл сохраняется | X-AtlasCloud-Request-Retention-Hours: 0 (сохраните выходной URL самостоятельно) |
| Короткоживущие превью, обычная история | X-AtlasCloud-Object-Expiration-Hours: 1 |
| Значения платформы по умолчанию | Не отправляйте ни один заголовок |
Валидация
Оба заголовка проверяются до того, как что-либо произойдёт: до тарификации запроса, до сохранения файлов и до вызова провайдера модели. Если значение некорректно, запрос отклоняется с HTTP 400, задача не создаётся и списания не происходит.
| Правило | Детали |
|---|---|
| Формат | Целое число часов. Дробные значения (1.5), длительности (24h) и любой другой текст отклоняются. |
Диапазон X-AtlasCloud-Object-Expiration-Hours | 1–336. 0 отклоняется — для минимального срока используйте 1. |
Диапазон X-AtlasCloud-Request-Retention-Hours | 0–336. 0 допустим и означает «удалить после завершения». |
| Отсутствует или пуст | Считается «не задан» — применяется значение по умолчанию. |
Пример отклонения:
{
"code": 400,
"msg": "invalid X-AtlasCloud-Object-Expiration-Hours header: 500 is out of range [1, 336]"
}Если вы вызываете API из браузера, оба имени заголовков разрешены политикой CORS, поэтому кросс-доменные запросы могут их отправлять.
Стоимость
Настраиваемое хранение бесплатно. Сокращение сроков или использование значений по умолчанию не меняет стоимость генерации.
Лучшие практики
- Скачивайте то, что нужно сохранить. Относитесь к хранилищу Atlas Cloud как к буферу доставки, а не как к архиву — особенно при коротком сроке хранения объектов.
- Используйте вебхуки вместе с
X-AtlasCloud-Request-Retention-Hours: 0. Обратный вызов доставляет результат в момент завершения задачи, поэтому запись вам потом не нужна. - Храните выходной URL на своей стороне, если сокращаете срок хранения записи, но оставляете медиафайл.
- Отправляйте заголовки в каждом запросе, на который они должны распространяться. Они действуют на уровне запроса; настройки по умолчанию на уровне аккаунта нет.
- Не полагайтесь на URL из удалённой записи. Когда срок хранения медиафайла истекает, его URL возвращает
404— сгенерируйте заново, а не повторяйте запрос к мёртвой ссылке.
Устранение неполадок
| Симптом | Вероятная причина / действие |
|---|---|
400 ... is not a whole number of hours | Значение не является обычным целым числом. Отправляйте 24, а не 24h или 1.5. |
400 ... is out of range [1, 336] | Срок хранения объекта должен быть не менее 1 часа и не более 14 дней. |
400 ... is out of range [0, 336] | Срок хранения записи запроса должен быть от 0 до 14 дней. |
Выходной URL возвращает 404 раньше ожидаемого | Заданный вами срок хранения объекта истёк. Медиафайла больше нет; сгенерируйте заново, если он всё ещё нужен. |
| Опрос завершённой задачи не возвращает результатов | Запись запроса удалена вашей настройкой хранения. Используйте вебхук или увеличьте срок хранения. |
| Медиафайл доступен после исчезновения записи | Так и задумано — настройки независимы. Файл живёт до собственного истечения срока. |
Справочник
- Эндпоинты:
POST /api/v1/model/generateImage,POST /api/v1/model/generateVideo,POST /api/v1/model/generateAudio. X-AtlasCloud-Object-Expiration-Hours: целое1–336; только сгенерированные медиафайлы; по умолчанию 14 дней; может только сокращать срок.X-AtlasCloud-Request-Retention-Hours: целое0–336; только запись запроса;0= удалить после достижения терминального состояния и завершения расчётов.- Некорректное значение:
HTTP 400, задача не создана, списания нет. - См. также: Предсказания · Вебхуки · Загрузка файлов · Политика удаления данных
Last updated on