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

Яндекс.Диск может скачать файл на Диск пользователя. Для этого следует передать в запросе URL файла и следить за ходом операции. Если при скачивании возникла ошибка, Диск не будет пытаться скачать файл еще раз.

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

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

Запрос скачивания следует отправлять с помощью метода POST.

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

Ссылка на скачиваемый файл. Например, http%3A%2F%2Fexample.com%2Fphoto.png. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов.

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

path*

Путь на Диске, по которому должен быть доступен скачанный файл. Например, disk%3A%2Fbar%2Fphoto.png.

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

fields

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

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

disable_redirects

Параметр помогает запретить редиректы по адресу, заданному в параметре url.

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

  • «false» — обнаружив редирект, Диск должен скачать файл с нового адреса. Это значение используется по умолчанию.

  • «true» — обнаружив редирект, Диск не должен переходить по нему и что-либо скачивать.

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

Скачивание файла может занять неопределенное время. Если операция скачивания была запущена, API отвечает кодом 202 Accepted и ссылкой на статус операции (в теле ответа, в объекте Link.) Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.

Ваше приложение должно следить за статусом операции, используя полученную ссылку:

  • Статус success значит, что файл скачан успешно.
  • Статус failed значит, что файл скачать не удалось. В этом случае ваше приложение может попробовать скачать файл самостоятельно и загрузить его с помощью запроса Загрузка файла на Диск.

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

{
  "href": "https://cloud-api.yandex.net/v1/disk/operations?id=33ca7d03ab21ct41b4a40182e78d828a3f8b72cdb5f4c0e94cc4b1449a63a2fe",
  "method": "GET",
  "templated": false
}
Описание элементов ответа
Элемент Описание
href

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

method

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

templated

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

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