Медиа и файлы
Приватные файлы
Загрузка, антивирусная проверка, квота и срок хранения.
Файлы принадлежат пользователю и организации. Один пользователь получает 10 ГБ суммарно по всем своим организациям: 1 ГБ = 1000000000 байт. Квота включает карантин и незавершённое удаление. Предел объекта 50 МиБ = 52428800 байт.
- POST /v1/files: filename, mime_type, size_bytes, sha256 (64 строчных hex-символа).
- PUT точных байтов по upload.url с upload.headers. В браузере Content-Length выставляется автоматически по Blob. Ссылка действует до 300 секунд.
- POST /v1/files/ID/complete проверяет размер, SHA-256, сигнатуру типа и антивирус. При недоступном сканере файл остаётся закрыт; повтор complete допустим.
- GET /v1/files/ID/download выдаёт ссылку до 300 секунд, не дольше оставшегося срока хранения. GET /v1/files/ID/content возвращает проверенные байты с attachment и private, no-store.
Принимаются типы mime_type (расширение имени должно соответствовать типу):
| Группа | mime_type и расширение |
|---|---|
| Изображения | image/png (.png), image/jpeg (.jpg, .jpeg), image/webp (.webp) |
| Аудио | audio/wav и audio/x-wav (.wav), audio/mpeg (.mp3), audio/ogg (.ogg, .opus), audio/opus (.opus), audio/flac (.flac), audio/aac (.aac), audio/mp4 (.m4a), audio/webm (.webm) |
| Видео | video/mp4 (.mp4), video/webm (.webm) |
| 3D и голос | model/gltf-binary (.glb), application/x-safetensors (.safetensors) |
| Документы | application/pdf (.pdf), Word .docx, Excel .xlsx, text/plain (.txt, UTF-8), text/markdown (.md), text/csv (.csv) |
Содержимое проверяется по сигнатуре типа и антивирусом; Word и Excel — ещё и по структуре пакета. Имя файла — до 180 символов, без пути, управляющих символов, пробелов по краям и точки в начале или в конце. HTML, SVG, произвольные архивы и загрузка по пользовательскому URL не принимаются. Результаты моделей приходят теми же файловыми типами и скачиваются так же; необработанный звук PCM — только как результат модели, его загрузить нельзя.
В Нейростудии документы для ранжирования и векторизации читаются прямо в браузере, а исходный файл сохраняется в «Хранилище» как входящая загрузка на 7 дней и затем удаляется автоматически. В разделе «Хранилище» такие файлы отмечены как «Входящая загрузка», а созданные моделями — как «Результат».
Хранение по умолчанию 7 дней; точное время в retentionUntil. DELETE /v1/files/ID закрывает доступ. Если ссылка PUT ещё действует, квота остаётся занятой до её истечения и удаления объекта. Готовый файл нельзя перезаписать старой ссылкой PUT.
GET /v1/files и GET /v1/files/quota показывают метаданные и объём. Пагинация файлов: limit 1–100, after=next_cursor. Ссылки не следует писать в журналы или передавать посторонним: до истечения срока они дают доступ к файлу.