Скачивание файла с Диска

Чтобы скачать файл с общего диска, необходимо:

  1. Запросить URL для скачивания.
  2. Скачать файл по полученному адресу, указав тот же OAuth-токен, что и в исходном запросе.

Для OAuth-приложения необходимо наличие права:

  • cloud_api:disk.read

Запрос URL для скачивания

Чтобы получить URL для скачивания файла, необходимо передать API путь на общем диске, по которому находится скачиваемый файл.

Формат запроса

Метод: GET.

https://cloud-api.yandex.net/v1/disk/virtual-disks/resources/download
 ? path=<путь к скачиваемому файлу>

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

path*

Путь к скачиваемому файлу.

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

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

Где

  • <vd_hash> — метка общего диска. Пример vd_hash: 9Uyws5pZmXgDNA. Метку общего диска можно получить:

    • по API — с помощью метода, который возвращает информацию о статусе создания общего диска (посмотреть описание метода);
    • в интерфейсе Яндекс Диска — перейдите в общий диск, метка будет указана в персональной строке после vd/.
  • <путь внутри общего диска> — путь до файла или папки внутри общего диска.

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

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

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

Authorization: OAuth <token>

Формат ответа

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

Если запрос был обработан без ошибок, API отвечает кодом 200 OK. В теле ответа в объекте Link возвращается сгенерированный URL для скачивания файла. Время жизни ссылки на скачивание ограничено.

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

{
  "href": "https://downloader.dst.yandex.ru/disk/...",
  "method": "GET",
  "templated": false
}

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

Элемент

Описание

href

URL. Может быть шаблонизирован, см. ключ templated.

method

HTTP-метод для запроса URL из ключа href.

templated

Признак URL, который был шаблонизирован согласно RFC 6570. Возможные значения:

  • «true» — URL шаблонизирован: прежде чем отправлять запрос на этот адрес, следует указать нужные значения параметров вместо значений в фигурных скобках.
  • «false» — URL может быть запрошен без изменений.

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

Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.

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

  • 400 — Некорректные данные.
  • 401 — Не авторизован.
  • 403 — Доступ к ресурсу запрещен. / Пользователь не имеет прав доступа к общему диску.
  • 404 — Путь общего диска не найден.
  • 406 — Ресурс не может быть представлен в запрошенном формате.
  • 413 — Загрузка файла недоступна. Файл слишком большой.
  • 423 — Технические работы. Сейчас можно только просматривать и скачивать файлы.
  • 429 — Слишком много запросов.
  • 503 — Сервис временно недоступен.

Скачивание файла с общего диска по полученному URL

Скачивать файл следует с помощью метода GET:

https://downloader.dst.yandex.ru/disk/53139aa0et584d3bac7eeab405d3574b/535320b4/YyjTJtEHob8R5WbpojJbiiUuU2HC_2JSTU0gW9qE0NHGW2uncmBjM_-IXun3Msyij96FTHQGSX-fDL-XwokDvA%3D%3D?uid=202727674&filename=photo.png&disposition=attachment&hash=&limit=0&content_type=application%2Fx-www-form-urlencoded&fsize=34524&hid=93528043563b8r55723a253f4730290a&media_type=document

Если запрос был обработан без ошибок, API отвечает файлом с кодом 200 OK.

Путь к скачиваемому файлу.

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

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

Где

  • <vd_hash> — метка общего диска. Пример vd_hash: 9Uyws5pZmXgDNA. Метку общего диска можно получить:

    • по API — с помощью метода, который возвращает информацию о статусе создания общего диска (посмотреть описание метода);
    • в интерфейсе Яндекс Диска — перейдите в общий диск, метка будет указана в персональной строке после vd/.
  • <путь внутри общего диска> — путь до файла или папки внутри общего диска.

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

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

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