Загрузка файла на Диск
Чтобы загрузить файл на Диск, необходимо:
- Запросить URL для загрузки.
 - Загрузить файл по полученному адресу.
 
Запрос URL для загрузки
Сообщив API Диска желаемый путь для загружаемого файла, вы получаете URL для обращения к загрузчику файлов.
Формат запроса
Метод: GET.
https://cloud-api.yandex.net/v1/disk/resources/upload
 ? path=<путь, по которому следует загрузить файл>
 & [overwrite=<признак перезаписи>]
 & [fields=<свойства, которые нужно включить в ответ>]
        
    Описание query-параметров
- path*
 - 
Путь, по которому следует загрузить файл. Например,
%2Fbar%2Fphoto.png. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов.Путь в значении параметра следует кодировать в URL-формате.
 - overwrite
 - 
Признак перезаписи файла. Учитывается, если файл загружается в папку, в которой уже есть файл с таким именем.
Допустимые значения: 
false— не перезаписывать файл, отменить загрузку (используется по умолчанию);true— удалить файл с совпадающим именем и записать загруженный файл.
- fields
 - Список свойств JSON, которые следует включить в ответ. Ключи, не указанные в этом списке, будут отброшены при составлении ответа. Если параметр не указан, ответ возвращается полностью, без сокращений. 
Имена ключей следует указывать через запятую, а вложенные ключи разделять точками. Например:name,_embedded.items.path. 
* Обязательный параметр.
Заголовок
Authorization: OAuth <token>
        
    Формат ответа
Успешный ответ
Если запрос был обработан без ошибок, API отвечает кодом 200 OK. В теле ответа в объекте Link-upload возвращается сгенерированный URL для загрузки файла. Если в течение 30 минут этот URL не будет запрошен, он перестанет работать и нужно будет запросить новую ссылку.
Пример ответа:
{
  "operation_id": "cbb77e87cc43bcdcdd2de397cd05b43368b9e2bda78eab1f94037c9c38a31e43",
  "href": "https://uploader1d.dst.yandex.net:443/upload-target/...",
  "method": "PUT",
  "templated": false
}
        
    Описание элементов ответа
| 
 Элемент  | 
 Описание  | 
| 
 
  | 
 Идентификатор операции загрузки файла.  | 
| 
 
  | 
 URL. Может быть шаблонизирован, см. ключ   | 
| 
 
  | 
 HTTP-метод для запроса URL из ключа   | 
| 
 
  | 
 Признак URL, который был шаблонизирован согласно RFC 6570. Возможные значения: 
  | 
Ответ с ошибкой
Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.
Некоторые возможные ошибки:
400— Некорректные данные.401— Не авторизован.403— API недоступно. Ваши файлы занимают больше места, чем у вас есть. Удалите лишнее или увеличьте объём Диска.404— Не удалось найти запрошенный ресурс.406— Ресурс не может быть представлен в запрошенном формате.409— Ресурс по указанному пути уже существует.413— Загрузка файла недоступна. Файл слишком большой.423— Технические работы. Сейчас можно только просматривать и скачивать файлы.429— Слишком много запросов.503— Сервис временно недоступен.507— Недостаточно свободного места.
Загрузка файла на полученный URL
Формат запроса
Файл следует отправить с помощью метода PUT на URL для загрузки, в течение 30 минут после получения этого URL (через 30 минут ссылка перестанет работать и ее нужно будет запросить заново). OAuth-токен для загрузки в хранилище не нужен.
Пример URL для загрузки:
https://uploader1d.dst.yandex.net:443/upload-target/20240424T101447.217.utd.52csloukwvq67nab1yc84a3xw-k1d.6625
        
    Формат ответа
Если запрос был обработан без ошибок, API отвечает кодом 201 Created.
Пример HTTP-ответа:
HTTP/1.1 201 Created
Content-Length: 0
        
    Возможные коды ответа при загрузке файла
API отвечает кодом 201 Created, если файл был загружен без ошибок.
Другие возможные коды HTTP-ответа:
- 
202 Accepted— файл принят сервером, но еще не был перенесен непосредственно в Яндекс Диск. - 
412 Precondition Failed— при дозагрузке файла был передан неверный диапазон в заголовкеContent-Range. - 
413 Payload Too Large— размер файла больше допустимого. Если у вас есть подписка на Яндекс 360, можно загружать файлы размером до 50 ГБ, если подписки нет — до 1 ГБ. - 
500 Internal Server Errorили503 Service Unavailable— ошибка сервера, попробуйте повторить загрузку. - 
507 Insufficient Storage— для загрузки файла не хватает места на Диске пользователя. 
Путь, по которому следует загрузить файл. Например, %2Fbar%2Fphoto.png. Максимальная длина имени загружаемого файла — 255 символов; максимальная длина пути — 32760 символов. 
Путь в значении параметра следует кодировать в URL-формате.
Признак перезаписи файла. Учитывается, если файл загружается в папку, в которой уже есть файл с таким именем. 
Допустимые значения:
false— не перезаписывать файл, отменить загрузку (используется по умолчанию);true— удалить файл с совпадающим именем и записать загруженный файл.
Список свойств JSON, которые следует включить в ответ. Ключи, не указанные в этом списке, будут отброшены при составлении ответа. Если параметр не указан, ответ возвращается полностью, без сокращений. 
Имена ключей следует указывать через запятую, а вложенные ключи разделять точками. Например: name,_embedded.items.path.
Обязательный параметр.