В моем коде C# с Graph SDK я тестирую «загрузку большого файла» с помощью метода, щедро предоставленного здесь: Загружать большие файлы из OneDrive с помощью Microsoft Graph SDK
Однако, несмотря на то, что я явно запрашиваю DriveItem у службы непосредственно перед вызовом этого метода (который затем использует downloadUrl из AdditionalData в DriveItem), я получаю ответ, указывающий на то, что JWT Token Expired.
Я предполагаю, что этот токен встроен в предварительно аутентифицированный URL-адрес загрузки. Кроме того, я предполагаю, что этот токен либо одноразовый, либо срок его действия истекает относительно быстро... обе причины для меня явно запрашивать DriveItem непосредственно перед попыткой использовать этот URL-адрес.
Как убедиться, что служба отправляет мне «свежий» URL-адрес загрузки? Есть ли заголовки без кеша или что-то, что я должен явно включить в свой запрос DriveItem?
Как уже упоминалось, хотя у меня есть локальный объект DriveItem, я явно повторно извлекаю его из службы, чтобы убедиться, что у меня есть последние свойства и новый URL-адрес загрузки. (Но это не работает.) Использование объекта Request без каких-либо дополнительных заголовков (или других параметров odata), по-видимому, недостаточно для запуска генерации нового URL-адреса.
Это происходит не при каждом тесте. Я полагаю, что это происходит при повторном запуске теста с тем же DriveItem в течение короткого промежутка времени. Опять же, я не уверен, является ли токен JWT одноразовым или с истекшим сроком действия, но если он в любом случае истек, я думаю, что служба должна автоматически сгенерировать новый. Если это непрактично, просто понимание того, как явно запросить новый, безусловно, тоже эффективно!
Authorization
при попытке загрузить файл? - person Marc LaFleur   schedule 08.02.2019