---
metadata:
  - name: generator
    content: Diplodoc Platform v5.44.0
alternate:
  - https://yandex.ru/dev/disk-api/doc/ru/reference/upload_shd.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) по полученному адресу.

Загружать файлы на общий диск может как администратор, так и другие сотрудники организации, у которых есть права на чтение данных с общего диска и запись на него.

Для OAuth-приложения необходимо наличие права:
* `cloud_api:disk.read`
* `cloud_api:disk.write`

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

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

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

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

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

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

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

<!-- source: ru/_includes/reference/shd/resources/path-disk-area.md -->
Указывается в следующем формате:

```
vd:<vd_hash>:disk:/<путь внутри общего диска>
```

Где 

- `<vd_hash>` — метка общего диска. Пример `vd_hash`: ##9Uyws5pZmXgDNA##. Метку общего диска можно получить:
    - по API — с помощью метода, который возвращает информацию о статусе создания общего диска ([посмотреть описание метода](https://yandex.ru/dev/disk-api/doc/ru/reference/shared-disks/shd-create-state.md));
    - в интерфейсе Яндекс Диска — перейдите в общий диск, метка будет указана в персональной строке после `vd/`.

- `<путь внутри общего диска>` — путь до файла или папки внутри общего диска.

Например, путь до файла ##test_file.txt##, который лежит в папке ##test_folder## общего диска указывается так:

```
vd:9Uyws5pZmXgDNA:disk:/test_folder/test_file.txt
```
<!-- endsource: ru/_includes/reference/shd/resources/path-disk-area.md -->


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

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

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


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

#### Заголовок {#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/business/disk/web/ru/uploading). 
* `423` — Загрузка файлов недоступна, можно только просматривать и скачивать. Возможные причины ошибки:
  - Ведутся технические работы.
  - Вы достигли ограничения по загрузке файлов (`UPLOAD_TRAFFIC_LIMIT_EXCEEDED`).  Про лимит загрузки файлов на общие диски читайте в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/share/shared-disks#limit-na-zagruzku-fajlov).
* `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 отвечает кодом `202 Accepted`.

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

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

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

* `412` — при дозагрузке файла был передан неверный диапазон в заголовке `Content-Range`.
* `413` — Загрузка файла недоступна, файл слишком большой (`UPLOAD_FILE_SIZE_LIMIT_EXCEEDED`). Про максимальный размер одного файла для загрузки на Диск читайте в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/uploading). 
* `423` — Загрузка файлов недоступна, можно только просматривать и скачивать. Возможные причины ошибки:
  - Ведутся технические работы.
  - Вы достигли ограничения по загрузке файлов (`UPLOAD_TRAFFIC_LIMIT_EXCEEDED`).  Про лимит загрузки файлов на общие диски читайте в [Справке Яндекс 360 для бизнеса](https://yandex.ru/support/yandex-360/business/disk/web/ru/share/shared-disks#limit-na-zagruzku-fajlov).
* `500` — ошибка сервера, попробуйте повторить загрузку.
* `503` — сервер недоступен, попробуйте повторить загрузку.
* `507` — для загрузки файла не хватает места на общем диске.

[*popup-vd_resource_path]: Путь, по которому следует загрузить файл на общий диск. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов.


Указывается в следующем формате:

```
vd:<vd_hash>:disk:/<путь внутри общего диска>
```

Где 

- `<vd_hash>` — метка общего диска. Пример `vd_hash`: ##9Uyws5pZmXgDNA##. Метку общего диска можно получить:
    - по API — с помощью метода, который возвращает информацию о статусе создания общего диска ([посмотреть описание метода](https://yandex.ru/dev/disk-api/doc/ru/reference/shared-disks/shd-create-state.md));
    - в интерфейсе Яндекс Диска — перейдите в общий диск, метка будет указана в персональной строке после `vd/`.

- `<путь внутри общего диска>` — путь до файла или папки внутри общего диска.

Например, путь до файла ##test_file.txt##, который лежит в папке ##test_folder## общего диска указывается так:

```
vd:9Uyws5pZmXgDNA:disk:/test_folder/test_file.txt
```

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

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

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

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