Microsoft Graph:在OneDrive上传文件以与我共享文件夹?

时间:2018-01-07 22:26:23

标签: microsoft-graph onedrive

我能够使用this方法成功上传到共享文档文件夹。但我正在寻找一种方法将文件上传到OneDrive上的Shared WithMe文件夹。

是否可以上传到OneDrive上的“/ Shared WithMe”文件夹?如果是这样,哪个是PUT(小文件)或POST(上传会话)的正确语法?我花了很多时间来弄清楚这一点,但没有运气。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

我在这种方法上取得了成功:

PUT /drives/{driveid}/items/{itemid}/content

我能够从driveid实体中检索itemidDriveItem。对于给定的DriveItemdriveid位于DriveItem.RemoteItem.ParentReference.DriveIdItemReference docs),而itemid位于DriveItem.RemoteItem.IdRemoteItem docs

Files.ReadWrite.All权限似乎是必需的。

这种方法在UWP C#Graph SDK中对我有用。

答案 1 :(得分:0)

补充@Mark Scott的回答:

首先,我从与我共享的文件 URI 响应中获得了 driveIditemId

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