---
metadata:
  - name: generator
    content: Diplodoc Platform v5.44.0
alternate:
  - https://yandex.ru/dev/disk-api/doc/en/reference/upload.md
  - https://yandex.ru/dev/disk-api/doc/ru/reference/upload.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/disk-api/doc/ru/llms.txt

# Загрузка файла на Диск

Чтобы загрузить файл на Диск, необходимо:

1. [Запросить URL для загрузки.](#url-request)
1. [Загрузить файл](#response-upload) по полученному адресу.


## Запрос URL для загрузки {#url-request}

Сообщив API Диска желаемый путь для загружаемого файла, вы получаете URL для обращения к загрузчику файлов.

### Формат запроса {#request}

Метод: ##GET##.

```
https://cloud-api.yandex.net/v1/disk/resources/upload
 ? [path](*popup-path)=<путь, по которому следует загрузить файл>
 & [[overwrite](*popup-overwrite)=<признак перезаписи>]
 & [[fields](*popup-fields)=<свойства, которые нужно включить в ответ>]
```

#### Описание query-параметров {#query}

path[*](*popup-a)
: Путь, по которому следует загрузить файл. Например, `%2Fbar%2Fphoto.png`. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов.

<!-- source: ru/_includes/reference/parameters-warehouse/id-format/path-encoding.md -->
Путь в значении параметра следует кодировать в URL-формате.
<!-- endsource: ru/_includes/reference/parameters-warehouse/id-format/path-encoding.md -->


overwrite
: Признак перезаписи файла. Учитывается, если файл загружается в папку, в которой уже есть файл с таким именем.

Допустимые значения:

- `false` — не перезаписывать файл, отменить загрузку (используется по умолчанию);
- `true` — удалить файл с совпадающим именем и записать загруженный файл.


fields
: Список свойств JSON, которые следует включить в ответ. Ключи, не указанные в этом списке, будут отброшены при составлении ответа. Если параметр не указан, ответ возвращается полностью, без сокращений.

Имена ключей следует указывать через запятую, а вложенные ключи разделять точками. Например: `name,_embedded.items.path`.


\* Обязательный параметр.

#### Заголовок {#header}

```
Authorization: OAuth <token>
```

### Формат ответа {#response}

#### Успешный ответ

Если запрос был обработан без ошибок, API отвечает кодом `200 OK`. В теле ответа в объекте [Link-upload](https://yandex.ru/dev/disk-api/doc/ru/reference/response-objects.md#link-upload) возвращается сгенерированный URL для загрузки файла. Если в течение 30 минут этот URL не будет запрошен, он перестанет работать и нужно будет запросить новую ссылку.

Пример ответа:

```json
{
  "operation_id": "cbb77e87cc43bcdcdd2de397cd05b43368b9e2bda78eab1f94037c9c38a31e43",
  "href": "https://uploader1d.dst.yandex.net:443/upload-target/...",
  "method": "PUT",
  "templated": false
}
```

##### Описание элементов ответа

<!-- source: ru/_includes/reference/response-objects/id-link/link-upload-table.md -->


#|
|| **Элемент** | **Описание**||
|| `operation_id` | Идентификатор операции загрузки файла. ||
|| `href` | URL. Может быть шаблонизирован, см. ключ `templated`. ||
|| `method` | HTTP-метод для запроса URL из ключа `href`. ||
|| `templated` | Признак URL, который был шаблонизирован согласно [RFC 6570](http://tools.ietf.org/html/rfc6570). Возможные значения:

- «true» — URL шаблонизирован: прежде чем отправлять запрос на этот адрес, следует указать нужные значения параметров вместо значений в фигурных скобках.
- «false» — URL может быть запрошен без изменений.||
|#
<!-- endsource: ru/_includes/reference/response-objects/id-link/link-upload-table.md -->

#### Ответ с ошибкой

<!-- source: ru/_includes/reference/response-error.md -->
Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит [описание ошибки](https://yandex.ru/dev/disk-api/doc/ru/reference/response-objects.md#error).
<!-- endsource: ru/_includes/reference/response-error.md -->

Некоторые возможные ошибки:

* `400` — Некорректные данные.
* `401` — Не авторизован.
* `403` — API недоступно. Ваши файлы занимают больше места, чем у вас есть. Удалите лишнее или увеличьте объем Диска.
* `404` — Не удалось найти запрошенный ресурс.
* `406` — Ресурс не может быть представлен в запрошенном формате.
* `409` — Ресурс по указанному пути уже существует.
* `413` — Загрузка файла недоступна, файл слишком большой (`UPLOAD_FILE_SIZE_LIMIT_EXCEEDED`). Максимальный размер одного файла для загрузки на Диск зависит от тарифа. Ознакомиться с ограничениями можно в [Справке Яндекс 360](https://yandex.ru/support/yandex-360/customers/disk/web/ru/uploading) и в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/uploading).
* `423` — Загрузка файлов недоступна, можно только просматривать и скачивать. Возможные причины ошибки:
  - Ведутся технические работы.
  - Вы достигли ограничения по загрузке файлов (`UPLOAD_TRAFFIC_LIMIT_EXCEEDED`).  Про месячный лимит загрузки на Диск можно прочитать в [Справке Яндекс 360](https://yandex.ru/support/yandex-360/customers/disk/web/ru/enlarge/disk-space#limit) и в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/enlarge/disk-space#limit).
* `429` — Слишком много запросов.
* `503` — Сервис временно недоступен.
* `507` — Недостаточно свободного места.



## Загрузка файла на полученный URL {#url-upload}

### Формат запроса {#request-upload}

Файл следует отправить с помощью метода PUT на [URL для загрузки](#response), в течение 30 минут после получения этого URL (через 30 минут ссылка перестанет работать и ее нужно будет запросить заново). OAuth-токен для загрузки в хранилище не нужен.

Пример URL для загрузки:

```no-highlight
https://uploader1d.dst.yandex.net:443/upload-target/20240424T101447.217.utd.52csloukwvq67nab1yc84a3xw-k1d.6625
```

### Формат ответа {#response-upload}

Если запрос был обработан без ошибок, API отвечает кодом `201 Created`.

Пример HTTP-ответа:

```
HTTP/1.1 201 Created
Content-Length: 0

```

#### Возможные коды ответа при загрузке файла

API отвечает кодом `201 Created`, если файл был загружен без ошибок.

Другие возможные коды HTTP-ответа:

- `202 Accepted` — файл принят сервером, но еще не был перенесен непосредственно в Яндекс Диск.

- `412 Precondition Failed` — при дозагрузке файла был передан неверный диапазон в заголовке `Content-Range`.

- `413 Payload Too Large` — размер файла больше допустимого. Максимальный размер одного файла для загрузки на Диск зависит от тарифа. Ознакомиться с ограничениями можно в [Справке Яндекс 360](https://yandex.ru/support/yandex-360/customers/disk/web/ru/uploading) и в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/uploading).

- `423 Locked` — ресурс заблокирован, загрузка файлов недоступна, можно только просматривать и скачивать. Возможные причины ошибки:
  - Ведутся технические работы.
  - Вы достигли ограничения по загрузке файлов (`UPLOAD_TRAFFIC_LIMIT_EXCEEDED`).  Про месячный лимит загрузки на Диск можно прочитать в [Справке Яндекс 360](https://yandex.ru/support/yandex-360/customers/disk/web/ru/enlarge/disk-space#limit) и в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/enlarge/disk-space#limit).

- `500 Internal Server Error` или `503 Service Unavailable` — ошибка сервера, попробуйте повторить загрузку.

- `507 Insufficient Storage` — для загрузки файла не хватает места на Диске пользователя.

[*popup-path]: Путь, по которому следует загрузить файл. Например, `%2Fbar%2Fphoto.png`. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов.


Путь в значении параметра следует кодировать в URL-формате.

[*popup-overwrite]: Признак перезаписи файла. Учитывается, если файл загружается в папку, в которой уже есть файл с таким именем.

Допустимые значения:

- `false` — не перезаписывать файл, отменить загрузку (используется по умолчанию);
- `true` — удалить файл с совпадающим именем и записать загруженный файл.

[*popup-fields]: Список свойств JSON, которые следует включить в ответ. Ключи, не указанные в этом списке, будут отброшены при составлении ответа. Если параметр не указан, ответ возвращается полностью, без сокращений.

Имена ключей следует указывать через запятую, а вложенные ключи разделять точками. Например: `name,_embedded.items.path`.

[*popup-a]: Обязательный параметр.