@agusha23

404 при запросе публичного файла с яндекс диска по API?

Пытаюсь отправлять http-запросы на API яндекс диска на получения ссылки для скачивания: https://yandex.ru/dev/disk/api/reference/public.ht...

Сначала все проходит успешно но потом через какое то время сервер отдаёт стабильно 404 ошибку с текстом:
{
	"message": "Не удалось найти запрошенный ресурс.",
	"description": "Resource not found.",
	"error": "DiskNotFoundError"
}


При этом если взять и вставить ссылку на публичный ресурс в браузер (или отправить гет-запрос через http-клиент) то файл успешно находится. Запросы делаю не часто: запросы идут пока я разрабатываю приложение. Авторизация по OAuth проходит успешно

Что может быть не так? Есть ощущение что есть какие то скрытые ограничения у API. Подскажите кто сталкивался пож-та

Пример моего запроса:
curl --request GET \
  --url 'https://cloud-api.yandex.net/v1/disk/public/resources/download?public_key=<FILE_PUBLIC_URL>' \
  --header 'Accept: application/json' \
  --header 'Authorization: OAuth <MY_TOKEN>'


UPD
отправил другой запрос: https://cloud-api.yandex.net/v1/disk/public/resources и этот запрос отдал уже ответ 429, с текстом ошибки

{
	"message": "Превышен лимит скачивания",
	"description": "Download limit exceeded for resource",
	"error": "DiskResourceDownloadLimitExceededError"
}


Так что судя по всему есть скрытые ограничения (либо они описаны и я их не нашел)
  • Вопрос задан
  • 1315 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Y_ALOXA_Y
Нашел решение, когда вы отправляете GET запрос, передавайте url на файл целиком (https://disk.yandex.ru/i/K6zOenhk3xTXKQ)

Пример:
YANDEX_URL = 'https://cloud-api.yandex.net/v1/disk/public/resour...}'
public_key = K6zOenhk3xTXKQ
response = requests.get(YANDEX_URL)
data = response.json()

Не сработает и выдаст 404 ошибку

ПРАВИЛЬНЫЙ ЗАПРОС:
YANDEX_URL = 'https://cloud-api.yandex.net/v1/disk/public/resour...}'
public_key = 'https://disk.yandex.ru/i/K6zOenhk3xTXKQ'
response = requests.get(YANDEX_URL)
data = response.json()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы