Скачивание файла с Диска
Чтобы скачать файл с общего диска, необходимо:
- Запросить URL для скачивания.
- Скачать файл по полученному адресу, указав тот же 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
}
Описание элементов ответа
|
Элемент |
Описание |
|
|
URL. Может быть шаблонизирован, см. ключ |
|
|
HTTP-метод для запроса URL из ключа |
|
|
Признак URL, который был шаблонизирован согласно RFC 6570. Возможные значения:
|
Ответ с ошибкой
Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.
Некоторые возможные ошибки:
400— Некорректные данные.401— Не авторизован.403— Доступ к ресурсу запрещен. / Пользователь не имеет прав доступа к общему диску.404— Путь общего диска не найден.406— Ресурс не может быть представлен в запрошенном формате.413— Загрузка файла недоступна. Файл слишком большой.423— Технические работы. Сейчас можно только просматривать и скачивать файлы.429— Слишком много запросов.503— Сервис временно недоступен.
Скачивание файла с общего диска по полученному URL
Скачивать файл следует с помощью метода GET.
Пример URL для скачивания:
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с телом ответа, в котором содержится скачиваемый файл. - Кодом
302 Foundс заголовкомLocation. Заголовок содержит адрес вида*.storage.yandex.net, с которого происходит скачивание файла.
Путь к скачиваемому файлу.
Указывается в следующем формате:
vd:<vd_hash>:disk:/<путь внутри общего диска>
Где
-
<vd_hash>— метка общего диска. Примерvd_hash: 9Uyws5pZmXgDNA. Метку общего диска можно получить:- по API — с помощью метода, который возвращает информацию о статусе создания общего диска (посмотреть описание метода);
- в интерфейсе Яндекс Диска — перейдите в общий диск, метка будет указана в персональной строке после
vd/.
-
<путь внутри общего диска>— путь до файла или папки внутри общего диска.
Например, путь до файла test_file.txt, который лежит в папке test_folder общего диска указывается так:
vd:9Uyws5pZmXgDNA:disk:/test_folder/test_file.txt
Обязательный параметр.