[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) |
Для multipart/form-data:
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| name | String | Необязательный | Имя файла. Если не передано, сервер возьмёт его из имени загружаемого файла |
| extension | String | Необязательный | Расширение файла без точки. Если не передано, сервер возьмёт его из имени загружаемого файла |
| file | File | Обязательный | Бинарный поток файла |
| access_level | FileAccessLevelEnum | Обязательный | personal или public |
| folder_id | Int64 | Необязательный | Целевая папка. Если не передано, используется 1 (root) |
Примечания:
>= 365.< 365 работает режим совместимости (без проверок папок).Ограничения и проверки
name не длиннее 200 символов.extension не длиннее 10 символов.Пример запроса
{
"name": "contract.pdf",
"extension": "pdf",
"data": "JVBERi0xLjQKJ...",
"access_level": "personal",
"folder_id": 10
}
Пример multipart-запроса
curl -X POST "https://example.com/v1/file/add" \
-H "Authorization: Bearer <token>" \
-F "access_level=personal" \
-F "folder_id=10" \
-F "file=@contract.pdf"
Выходные параметры
| Название | Тип данных | Описание |
|---|---|---|
| new_id | long | ID созданного файла |
Пример ответа
{
"ok": true,
"result": {
"new_id": 12345
}
}