在我使用 Graph SDK 的 C# 代码中,我正在使用此处慷慨提供的方法测试“下载大文件”:使用 Microsoft Graph SDK 从 OneDrive 下载大文件
但是,即使我在调用此方法之前从服务中明确请求 DriveItem(然后使用 DriveItem 中 AdditionalData 中的 downloadUrl),我收到的响应表明 JWT 令牌已过期。
我假设这个令牌嵌入在预认证的 downloadUrl 中。此外,我推测这个令牌要么是一次性的,要么它会相对较快地过期......这两个原因都是我在尝试使用该 URL 之前明确请求 DriveItem 的原因。
如何确保该服务向我发回“新鲜”的 downloadUrl?是否有一些无缓存标头或我应该在 DriveItem 请求中明确包含的内容?
如前所述,即使我在本地有 DriveItem 对象,我也会明确地从服务中重新获取它,以确保我拥有最新的属性和新的 downloadUrl。(但这不起作用。)使用没有任何额外标头(或其他 odata 参数)的 Request 对象显然不足以触发新 URL 的生成。
并非每次测试都会发生这种情况。我相信在短时间内使用相同的 DriveItem 重新运行测试时会发生这种情况。同样,我不确定 JWT 令牌是一次性使用的还是过期的,但如果它在任何情况下都过期了,我认为该服务应该自动生成一个新令牌。如果这不切实际,那么仅仅了解如何明确要求一个新的当然也很有效!