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 不是一个选项,因为它可以访问所有站点)
现在我正在尝试使用 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 方法。
我已经在我们的 Azure AD 上注册了一个应用程序,并授予它 Sites.Selected 权限,并按照本指南授予它对特定 Sharepoint 站点的访问权限。 (Sites.ReadWrite.All 不是一个选项,因为它可以访问所有站点)
现在我正在尝试使用 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 方法。