2

文档:

https://docs.microsoft.com/en-us/graph/api/driveitem-createuploadsession?view=graph-rest-1.0

我可以使用站点/域/驱动器 api 获取子站点的驱动器 ID。使用这个和 driveId/root/children 我可以确认这个驱动器上的几个文件夹。

如果我使用 API POST /drives/{driveId}/items/{itemId}/createUploadSession 将 driveId 替换为驱动器 ID,将 itemId 替换为文件夹 ID,我会收到以下错误

{
  "error": {
    "code": "nameAlreadyExists",
    "message": "Cannot create an upload session on a folder",
    "innerError": {
      "request-id": "609e17d5-b3f8-455d-9d0f-4849872d8cfa",
      "date": "2020-02-25T20:31:33"
    }
  }
}

如果文件夹 ID 不是 ItemID,那么 ItemID 是什么?如何指定要将文件保存到的文件夹?还是子文件夹或文件夹?没有任何选项让我使用 ItemID 以外的任何东西

POST /drives/{driveId}/items/{itemId}/createUploadSession
POST /groups/{groupId}/drive/items/{itemId}/createUploadSession
POST /me/drive/items/{itemId}/createUploadSession
POST /sites/{siteId}/drive/items/{itemId}/createUploadSession
POST /users/{userId}/drive/items/{itemId}/createUploadSession 
4

1 回答 1

6

您问题中的请求选项只能用于通过使用文档的 id 上传现有文档的新版本。文件夹没有可以用较新版本替换的文档。因此,无法为文件夹创建上传会话。您需要将文件名指定为文件夹 id 之后的相对路径,以便为文件夹中的新文件创建上传会话:

https://graph.microsoft.com/v1.0/sites/{siteId}/drives/{driveId}/items/{folderId}:/{fileNameUploadFile}:/createUploadSession

您还可以使用文件夹名称而不是文件夹 ID:

https://graph.microsoft.com/v1.0/sites/{siteId}/drives/{driveId}/root:/{folderName}/{fileNameUploadFile}:/createUploadSession
于 2020-02-29T17:11:50.390 回答