通过简单上传 API,可以在一个 API 调用中提供新文件的内容或更新现有文件的内容。 此方法仅支持最大大小为 4 MB 的文件。

若要上传大文件,请参阅 通过上传会话上传大文件

调用此 API 需要以下权限之一。 若要了解详细信息,包括如何选择权限的信息,请参阅 权限

权限(从最低特权到最高特权)
PUT /drives/{drive-id}/items/{item-id}/content
PUT /groups/{group-id}/drive/items/{item-id}/content
PUT /me/drive/items/{item-id}/content
PUT /sites/{site-id}/drive/items/{item-id}/content
PUT /users/{user-id}/drive/items/{item-id}/content

HTTP 请求(上传新文件)

PUT /drives/{drive-id}/items/{parent-id}:/{filename}:/content
PUT /groups/{group-id}/drive/items/{parent-id}:/{filename}:/content
PUT /me/drive/items/{parent-id}:/{filename}:/content
PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content
PUT /users/{user-id}/drive/items/{parent-id}:/{filename}:/content

请求正文的内容应该是要上载文件的二进制流。

如果成功,此方法将在新创建或更新的文件的响应正文中返回 driveItem 对象。

示例(上传新文件)

此示例将字符串“文件的内容转到此处”上传到名为 FileB.txt 的 FolderA 下的已登录用户驱动器中的文件。

PUT /me/drive/root:/FolderA/FileB.txt:/content
Content-Type: text/plain
The contents of the file goes here.

如果成功,此方法将在响应正文中返回新建文件的 driveItem 资源。

HTTP/1.1 201 Created
Content-Type: application/json
  "id": "0123456789abc",
  "name": "FileB.txt",
  "size": 35,
  "file": { }

示例(更新现有文件)

此示例将文件的内容替换为已知 ID。

JavaScript GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient(); byte[] stream = Base64.getDecoder().decode("The contents of the file goes here."); graphClient.me().drive().items("{item-id}") .buildRequest() .put(stream); const stream = The contents of the file goes here.; await client.api('/me/drive/items/{item-id}/content') .put(stream);