[POST] …/v1/file/add
Создаёт новый файл и возвращает его ID.
Метод поддерживает два формата запроса:
application/json для обратной совместимости, когда содержимое файла передаётся в data как Base64.multipart/form-data для потоковой загрузки бинарного файла без Base64 в клиентском запросе.Входные параметры
Для application/json:
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| name | String | Обязательный | Отображаемое имя файла |
| extension | String | Обязательный | Расширение файла без точки |
| data | String | Обязательный | Содержимое файла в Base64 |
| access_level | FileAccessLevelEnum | Обязательный | personal или public |
| folder_id | Int64 | Необязательный | Целевая папка. Если не передано, используется 1 (root) |
| width | Int32 | Необязательный | Ширина визуального файла в пикселях |
| height | Int32 | Необязательный | Высота визуального файла в пикселях |
| duration_ms | Int64 | Необязательный | Длительность audio/video файла в миллисекундах |
Для multipart/form-data:
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| name | String | Необязательный | Имя файла. Если не передано, сервер возьмёт его из имени загружаемого файла |
| extension | String | Необязательный | Расширение файла без точки. Если не передано, сервер возьмёт его из имени загружаемого файла |
| file | File | Обязательный | Бинарный поток файла |
| access_level | FileAccessLevelEnum | Обязательный | personal или public |
| folder_id | Int64 | Необязательный | Целевая папка. Если не передано, используется 1 (root) |
| width | Int32 | Необязательный | Ширина визуального файла в пикселях |
| height | Int32 | Необязательный | Высота визуального файла в пикселях |
| duration_ms | Int64 | Необязательный | Длительность audio/video файла в миллисекундах |
Ограничения и проверки
name не длиннее 200 символов.extension не длиннее 10 символов.width и height передаются только парой и должны быть больше 0.duration_ms не может быть отрицательным.media_type; поле возвращается в модели File.file_max_filesize; при превышении возвращается ошибка 1024 (file.size).1222 (disk_space).multipart/form-data содержимое файла передаётся бинарным потоком без Base64.Пример запроса
{
"name": "photo.jpg",
"extension": "jpg",
"data": "/9j/4AAQSkZJRgABAQ...",
"access_level": "personal",
"folder_id": 10,
"width": 1280,
"height": 720,
"duration_ms": null
}
Пример multipart-запроса
curl -X POST "https://example.com/v1/file/add" \
-H "Authorization: Bearer <token>" \
-F "access_level=personal" \
-F "folder_id=10" \
-F "width=1280" \
-F "height=720" \
-F "file=@photo.jpg"
Выходные параметры
| Название | Тип данных | Описание |
|---|---|---|
| new_id | long | ID созданного файла |
Пример ответа
{
"ok": true,
"result": {
"new_id": 12345
}
}