microsoft-graph-api - 站点页面列表驱动器中的驱动项上传失败
问题描述
与共享点站点中的 SitePage 列表关联的 Drive 中的所有 DrivesItems 上传失败。
图 API 请求:
UploadSession uploadSession = GraphCLient.Sites[{SiteId}].Drives[{DriveId of SitePages List }]. Items[{DriveFolderID}].ItemWithPath(driveItem.Item.Name).CreateUploadSession().Request().PostAsync().Result;
uploadSession 将成功创建,但chunkuploadprovider给出错误。
错误响应:代码:accessDenied 消息:调用者无权执行该操作。内在错误
代码片段:
private void UploadItem(OneDriveJsonStructure driveItem)
{
try
{
MemoryStream memStream = (MemoryStream)driveItem.Content;
byte[] buffer = memStream.ToArray();
DriveItem item = null;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer))
{
UploadSession uploadSession = this._SharepointOperations._GraphCLient.Sites[this._SiteId].Drives[this._DriveId].Items[this._DriveFolderId].ItemWithPath(driveItem.Item.Name).CreateUploadSession().Request().PostAsync().Result;
var provider = new ChunkedUploadProvider(uploadSession, this._SharepointOperations._GraphCLient, memStream);
var chunkRequests = provider.GetUploadChunkRequests();
var readBuffer = new byte[buffer.Length];
var trackedExceptions = new List<Exception>();
DriveItem itemResult = null;
foreach (var request in chunkRequests)
{
// Send chunk request
var result = provider.GetChunkRequestResponseAsync(request, readBuffer, trackedExceptions).Result;
if (result.UploadSucceeded)
{
itemResult = result.ItemResponse;
item = result.ItemResponse;
}
}
if (itemResult == null)
{
UploadChunkResult result = null;
// Retry the upload ...
foreach (var request in chunkRequests)
{
// Send chunk request
result = provider.GetChunkRequestResponseAsync(request, readBuffer, trackedExceptions).Result;
}
item = result.ItemResponse;
}
}
item.Permissions = driveItem.Item.Permissions;
GivePermission(item);
从 Azure AD 向客户端应用程序提供的权限:
即使拥有所有这些权限,它也会给出以下错误消息:
“调用者无权执行该操作”。
执行此操作需要哪些权限?
其他驱动器的 driveItems 的上传成功执行。
解决方案
推荐阅读
- firebase - Firestore 规则 > 确定哪个收集/规则失败
- java - Java Map 替换值字符串,如果 Map 包含此值
- php - 我如何在 laravel 中拆分两个用户?
- swiftui - 修复 SwiftUI 中的重叠视图
- php - 获取最近 30 天 DATES dd-mm-yyyy
- android - 线性布局绘制完成后创建 PDF
- api - 如何为某个帐户拉取公共帐户的 Instagram 帖子?
- javascript - 使用 jQuery 设置默认内容
- c# - 在 ubuntu 19.10 上安装 .NET 核心后无法运行示例控制台应用程序
- firebase - 使用 Firebase 扩展“导出到 BigQuery”时,导出是免费的还是作为流插入收费?