Скачивание файла с Диска
Чтобы скачать файл с общего диска, необходимо:
- Запросить 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:
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
Обязательный параметр.