似乎您无法使用OneDrive SDK c#从OneDrive中嵌入的共享文件夹下载/上载文件 .
模拟行为的步骤:
-
用户"A"与用户"B"共享名为"Shared01"的Onedrive文件夹,其权限为"modify";
-
用户"B"将"Shared01"合并到自己的Onedrive中:文件夹"Shared01"出现在"B"的根目录中;
-
使用c#SDK(OneDriveApiBrowser.sln)和用户"B"凭证,文件夹"Shared01"在根目录上正确显示,但是:
如果您在“Shared01”文件夹中导航,则不会显示存储在该文件夹中的文件;
您无法上传/下载或修改文件夹中的文件 .
此外,如果您尝试通过请求使用“Shared01”中包含的文件:
using (var stream = await this.oneDriveClient.Drive.Items[itemToOpen.Id].Content.Request().GetAsync())
别名:
GET /drive/items/{item-id}/content
您收到以下错误:
"{Code: itemNotFoundThrow site: 29a3.1155Message: Item does not exist}"
在过去,这个要求奏效了 .
1 回答
This API documentation解释了它,概念应该映射到您对SDK的使用 . 基本上,当您向驱动器添加共享文件夹时,实质上是添加指针 . 这些指针可以通过
remoteItem
facet的存在来检测,它将包含共享文件夹(remoteItem.Id
)的标识和该文件夹所在的驱动器(remoteItem.parentReference.driveId
) .要查询共享文件夹,您需要使用以下两条信息构建
drives
查询:然后你可以让孩子们使用:
然后使用以下方式下载儿童:
要么
在过去使用
drive
和remoteItem.Id
可能有效,但这绝对不是意图给出错误的驱动器的目标 .