Файлы и хранилище
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)curl https://api.mixen.ai/v1/files \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -F "file=@report.pdf" \ -F "policy=permanent"{ "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}Keep — сохранить навсегда
Заголовок раздела «Keep — сохранить навсегда»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.