Перейти к содержимому
EN

Файлы и хранилище

Storage API — постоянное файловое хранилище вашего ключа: загрузите файл, получите его id и скачивайте когда угодно. Два режима хранения:

Политика Срок Квота
temp 7 дней, потом автоматическое удаление нет
permanent бессрочно 1 ГБ на все permanent-файлы

Режим задаётся при загрузке параметром policy (по умолчанию temp), а временный файл можно перевести в постоянные позже — ручкой keep (см. ниже). У каждого файла в ответе есть expires_at — дата, после которой временный файл исчезнет.

from openai import OpenAI # тот же SDK: /v1/files совместим по форме
client = OpenAI(base_url="https://api.mixen.ai/v1", api_key=API_KEY)
with open("report.pdf", "rb") as f:
stored = client.files.create(file=f, purpose="storage")
print(stored.id, stored.filename)
{
"id": "552",
"object": "file",
"filename": "report.pdf",
"mime": "application/pdf",
"size_bytes": 48213,
"policy": "permanent",
"expires_at": null,
"created_at": 1793731200
}

Ограничения: файл до 25 МБ; пустой файл отклоняется. При загрузке permanent сверх квоты придёт 400 storage_quota_exceeded с quota_bytes и free_bytes в теле ошибки — освободите место удалением или загрузите как temp.

Байты — GET /v1/files/{id}/content (поддерживает HTTP Range — видеофайлы можно перематывать), метаданные — GET /v1/files/{id}:

curl -H "Authorization: Bearer $MIXEN_API_KEY" \
https://api.mixen.ai/v1/files/552/content -o report.pdf

Файл удобно использовать как источник для генерации: скачайте content и передайте байты как file_data в файлах на вход или как data:-URL картинки в vision-запрос.

GET /v1/files — ваши файлы, новые сверху, курсорная пагинация как у истории: передайте next_cursor ответа как cursor.

GET /v1/files/stats — сколько чего хранится:

{
"temp": {"files": 3, "bytes": 1048576},
"permanent": {"files": 2, "bytes": 5242880},
"quota_bytes": 1073741824,
"free_bytes": 1068496896
}

PATCH /v1/files/{id}/keep переводит временный файл в постоянное хранение: expires_at обнуляется, файл больше не удаляется автоматически. Повторный вызов безвреден. Если квота 1 ГБ уже исчерпана — та же ошибка storage_quota_exceeded, что и при загрузке.

curl -X PATCH -H "Authorization: Bearer $MIXEN_API_KEY" \
https://api.mixen.ai/v1/files/553/keep

DELETE /v1/files/{id} удаляет файл и метаданные безвозвратно — и temp, и permanent.

curl -X DELETE -H "Authorization: Bearer $MIXEN_API_KEY" \
https://api.mixen.ai/v1/files/552
{"id": "552", "object": "file", "deleted": true}

Истечение и удаление — окончательные: файл не восстанавливается, а его id больше не отдается (404). Скачивание не продлевает срок жизни временного файла — продлить может только keep.