Файл загружается в указанную директорию в разделе Файлы. Для этого на диске должно быть достаточно места. При этом если в директории уже есть файл с таким же именем, к имени файла будет добавлен постфикс в виде цифры — (1) и так далее.
Для загрузки необходимо сгенерировать UUID и передать его в качестве параметра запроса hash. Он будет являться идентификатором тела файла.
Файл можно загрузить полностью или по частям. Чтобы загрузить файл целиком, необходимо передать заголовок Content-Range со значением bytes 0-[size]/[size] (например, bytes 0-1000/1000).
Для загрузки по частям файл должен быть разбит на отрезки. Все они, кроме последнего, должны быть равными. Размер отрезков должен составлять не менее 5 мегабайт (5 242 880 байт) и не более 5 гигабайт (5 368 709 120 байт). Остаток может быть любым.
Чтобы оповестить сервер о том, какая из частей загружается, необходимо передать заголовок Content-Range. Заголовок задается по шаблону: bytes [range-start]-[range-end]/[size]. Например, для загрузки файла размером 7 мегабайт необходимо передать следующие заголовки: bytes 0-5242880/7340032 для первой части файла размером 5 мегабайт и bytes 5242880-7340032/7340032 для оставшейся части.

Запрос

POST /pub/v1/disk/directory/{id}/upload

Параметры пути (path)

Имя параметра Тип Описание Дополнительно
id uuid

name: id
Идентификатор директории

Обязательный

Параметры запроса (query)

Имя параметра Тип Описание Дополнительно
Hash uuid

Идентификатор тела файла

Обязательный

Параметры формы

Имя параметра Тип Описание Дополнительно
File file

name: File
Загружаемый файл

Авторизация

Запрос обязательно должен использовать один из следующих методов авторизации: API key

Ответ

Могут быть возвращены следующие коды состояния HTTP:

HTTP-статус Описание Модель ответа
200 OK

Файл полностью загружен

206 Partial Content

Часть файла успешно загружена

400 Bad Request

Ошибка отображается в формате сообщения, описывающего проблему. Также текст ошибки может содержать коды EntityTooSmall — файл разбит на слишком маленькие части, InvalidPart — одна из частей не найдена в хранилище, InvalidPartOrder — неверный порядок частей в файле, NoSuchUpload — загрузка не найдена

402 Payment Required

Недостаточно места на диске

403 Forbidden

Нет прав на создание файла

default

Ответ сервера после загрузки файла в директорию

Ответ сервера после загрузки файла в директорию (Загрузка файла в директорию)