我能够使用this方法成功上传到共享文档文件夹。但我正在寻找一种方法将文件上传到OneDrive上的Shared WithMe文件夹。
是否可以上传到OneDrive上的“/ Shared WithMe”文件夹?如果是这样,哪个是PUT(小文件)或POST(上传会话)的正确语法?我花了很多时间来弄清楚这一点,但没有运气。
非常感谢任何帮助。
答案 0 :(得分:3)
我在这种方法上取得了成功:
PUT /drives/{driveid}/items/{itemid}/content
我能够从driveid
实体中检索itemid
和DriveItem
。对于给定的DriveItem
,driveid
位于DriveItem.RemoteItem.ParentReference.DriveId
(ItemReference docs),而itemid
位于DriveItem.RemoteItem.Id
(RemoteItem docs)
Files.ReadWrite.All权限似乎是必需的。
这种方法在UWP C#Graph SDK中对我有用。
答案 1 :(得分:0)
补充@Mark Scott的回答:
首先,我从与我共享的文件 URI 响应中获得了 driveId
和 itemId
:
GET /me/drive/sharedWithMe
要使用共享 URI 上传文件,我需要将其更改为包含文件名和 :
上传 URI 字符。所以,我的 URI 是:
PUT /drives/{driveid}/items/{itemid}:/FILE_NAME.EXTENSION:/content
这样就可以将文件上传到您知道 Id
的文件夹。但你可以走得更远!此外,可以使用已知文件夹 Id
作为根并指定上传文件的路径。这很棒,因为自动在您指定的路径中创建文件夹..`
PUT /drives/{driveid}/items/{itemid}:/FOLDER/CHILD FOLDER/FILE_NAME.EXTENSION:/content
最后,这会将您的文件上传到:KNOWN_FOLDER_ID_NAME/FOLDER/CHILD FOLDER/FILE_NAME.EXTENSION
额外提示:当您位于文件夹中时,您可以从 onedrive Web URL 获取共享文件夹 Id
。网址是这样的:
https://onedrive.live.com/?id=YOUR_FOLDER_ID&cid=DONT_USE_THIS