在有关Upload的文档中,列出了以下请求选项:
PUT /me/drive/items/{parent-id}:/{filename}:/content
PUT /me/drive/root:/{parent-path}/{filename}:/content
PUT /me/drive/items/{parent-id}/children/{filename}/content
PUT /groups/<id>/drive/items/<parent-id>/children/<filename>/content
在有关可恢复上传的文档中,Create an upload session显示以下选项:
POST /me/drive/root:/{path-to-item}:/createUploadSession
POST /me/drive/items/{parent-item-id}:/{filename}:/createUploadSession
如果我必须上传到其他(不是'我')驱动器怎么办?例如,默认的共享库(https://mycompany.sharepoint.com/Shared%20Documents),对于除上传之外的任何其他海豚,文档说明可以这样访问:
/drives/{drive-id}/items/{item-id}
所以,我的问题是:是否可以上传到“/共享文件”?如果是这样,哪个是PUT(小文件)或POST(上传会话)的正确语法? 也许类似于此? (我刚刚做了这个,它不起作用)
PUT /drives/{drive-id}/items/{parent-id}/{filename}:/content
或(如果是上传会话):
POST /drives/{drive-id}/items/{parent-item-id}:/{filename}:/createUploadSession
例如,在Graph Explorer中,响应如下:
/v1.0/drives/THEDRIVEID/items/THEFOLDERID:/whatever.jpg:/createUploadSession
是:
{
"error": {
"code": "invalidRequest",
"message": "A valid path must be provided.",
"innerError": {
"request-id": "THERETURNEDID",
"date": "THERETURNEDDATE"
}
}
}
编辑:因为公司的root也可以作为/ drive / root /访问,我也试过(没有运气,在1.0和beta版):
/drive/root:/whatever.jpg:/createUploadSession
/drive/root/whatever.jpg:/createUploadSession
答案 0 :(得分:0)
这是可能的,但您需要正确的应用程序权限才能在用户的OneDrive之外读取/创建文件。您需要请求Sites.ReadWrite.All而不是请求Files.ReadWrite,然后使用/v1.0/drive/root:/file.bin:/createUploadSession
。
您还可以使用Microsoft Graph中的SharePoint Sites API访问团队网站文档库(根网站除外)。但是,此API仍处于测试版,不应在生产应用中使用。