06.07.2026 14:31

Add

[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.
  • Для JSON-режима учитывайте увеличение размера тела запроса из-за 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
  }
}