Клуб API Диска

401 Unauthorized

4 августа, 13:53

Используем Rest API для закидывания большого массива файлов на Диск. В какой-то момент все запросы GetUploadUrl получают код 401 с описанием "Не авторизован.", хотя предыдущие запросы имели тот же токен и получали код 200. Затем запросы снова отрабатываются корректно. Получается, что забрасывание файлов работает стабильно в течение, например, часа, затем где-то ещё час на все запросы API отвечает кодом 401, потом внезапно файлы продолжают закидываться. Токен в процессе не меняется, протухнет только через 361 день. Проблема носит непостоянный характер, возникает периодически и может длиться разное время.

Какие могут быть причины такого поведения? Неверная работа с токеном, проблемы с сетью, некорректные заголовки?

3 комментария
По задаче: копируем 177073 мелких файла. Начало задачи в 17:26:18. В 18:22:11 была первая ошибка 401, затем все запросы получали эту же ошибку до 18:23:52. После этого задача продолжилась.
Аналогичная ошибка. Несколько часов стабильно выдает 401, хотя раньше работало. Причем в какой-то момент запрос прошел (жаль не сделал скриншот:)), и снова 401.
Техподдержка так и не ответила?
sign.network,
Ответили на аналогичный запрос в техподдержку Yandex.OAuth -- сказали, что не знают, что с этим делать. Однако на данный момент найдены условия, при которых проблема не воспроизводится.
В запросах к API заголовок авторизации выглядит так: "Authorization: OAuth [token]"; но при скачивании с Диска или загрузке на Диск используется ссылка, которую возвращает API Диска, и при обращении по этой ссылке заголовок авторизации мы указываем таким: "Authorization: Bearer [token]".
Может, это решение было логичным, но мы долго считали, что раз в документации указано "OAuth", значит при всех запросах тип должен быть "OAuth".
Обновлено 28 сентября, 07:44