Microsoft Graph API - 上传大文件 - 具有 Sites.selected 权限的 Azure AD 应用程序

Microsoft Graph API - Upload large file - Azure AD App with Sites.selected permission

我已经在我们的 Azure AD 上注册了一个应用程序,并授予它 Sites.Selected 权限,并按照本指南授予它对特定 Sharepoint 站点的访问权限。 (Sites.ReadWrite.All 不是一个选项,因为它可以访问所有站点)

https://ashiqf.com/2021/03/15/how-to-use-microsoft-graph-sharepoint-sites-selected-application-permission-in-a-azure-ad-application-for-more-granular-control/

现在我正在尝试使用 Postman 向 Microsoft Graph API 发送 Web 请求以上传大文件,因此我想使用 createUploadSession 端点。 https://graph.microsoft.com/v1.0/sites/{{site_id}}/drive/items/{{Item_id}}:/test.rtf:/createUploadSession

但是我得到错误:

{
    "error": {
        "code": "notAllowed",
        "message": "Operation not allowed",
        "innerError": {
            "date": "2022-02-04T14:04:37",
            "request-id": "06e86b5b-6067-4d7b-9ce9-af41de95406f",
            "client-request-id": "06e86b5b-6067-4d7b-9ce9-af41de95406f"
        }
    }
}

我知道我使用的身份验证令牌是有效的,因为直接上传文件的请求工作正常并上传了文件。 https://graph.microsoft.com/v1.0/sites/{{site_id}}/drive/items/{{Item_id}}:/test.rtf:/content

关于我开始上传会话的请求可能有什么问题,有什么想法吗?

我想 item_id 是目标文件夹的 ID,但我不确定您是否可以通过这种方式上传大文件

v1.0/sites/{{site_id}}/drive/items/{{Item_id}}:/test.rtf:/createUploadSession

尝试指定从根目录到文件的路径

POST v1.0/sites/{{site_id}}/drive/items/root:/test.rtf:/createUploadSession

还要检查是否设置了 POST HTTP 方法。