使用 POST 将项多部分上传到 OneDrive
使用多部分上传方法,可以在一个 API 调用中提供项的元数据和内容。 此方法仅支持请求上传不超过 4MB 的项。
注意:多部分上传仅适用于 OneDrive 个人版。
若要上传大文件,请参阅通过上传会话上传大文件。
权限
调用此 API 需要以下权限之一。 若要了解详细信息,包括如何选择权限的信息,请参阅权限。
权限类型 | 权限(从最低特权到最高特权) |
---|---|
委派(工作或学校帐户) | 无 |
委派(个人 Microsoft 帐户) | Files.ReadWrite、Files.ReadWrite.All |
应用程序 | 无 |
HTTP 请求
POST /me/drive/items/{item-id}/children
POST /me/drive/root:/{item-path}/:children
请求正文(多部分内容 + 元数据上传)
多部分上传请求正文同时设置文件的元数据和内容。
如果请求中包含 Content-Type: multipart/related
头,则该服务会检测此方案。
有关多部分上传/相关编码的详细信息,请参阅 RFC 2387 多部分上传/相关编码文档。
已上传的文档必须只包含以下两个部分:
名称 | 类型 | 说明 |
---|---|---|
metadata | application/json | 要在创建项时使用的元数据值。 |
content | 二 进 制 | 要创建的项的二进制内容。 |
如果除以上两个部分外还有其他部分,请求将遭拒。
每个部分必须在 头中指定 Content-Disposition
值,以指明是哪个部分。
虽然各部分可以按任意顺序排列,但应先指定元数据部分。
POST /drive/items/{folder-id}/children
Content-Type: multipart/related; boundary="A100x"
--A100x
Content-ID: <metadata>
Content-Type: application/json
{
"name": "newfile.txt",
"file": {},
"@microsoft.graph.sourceUrl": "cid:content",
"@microsoft.graph.conflictBehavior": "rename"
}
--A100x
Content-ID: <content>
Content-Type: text/plain
Contents of the file to be uploaded.
--A100x--
注意: 可以对项元数据使用 Instance 属性,从而控制在要上传的文件与现有文件同名时的行为。 默认情况下,如果与现有项同名,上传将失败。
响应
如果成功,此方法将在响应正文中返回新建文件的 driveItem 资源。
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "0123456789abc",
"name": "newfile.txt",
"file": { }
}
错误响应
请阅读 错误响应 主题,了解有关如何返回错误的详细信息。
注解
OneDrive for Business、SharePoint Online 和 SharePoint Server 2016 不支持多部分上传方法。