通过 URL 将项上传到 OneDrive(预览版)

应用可以通过提供 URL 将项上传到 OneDrive。 由于 OneDrive 会直接从远程服务器下载文件,因此应用不必上传文件的字节。 这对于文件内容不可用或传输成本高的移动客户端或浏览器外接程序特别有用。

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

注意: 只能通过 URL 将项上传到 OneDrive 个人版。

权限

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

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户)
委派(个人 Microsoft 帐户) Files.ReadWrite、Files.ReadWrite.All
应用程序

HTTP 请求

POST /me/drive/items/{parent-item}/children

请求标头

名称 类型 说明
Prefer string 设置为 respond-async 可启用异步项传输。 否则,就会中止请求。

请求正文

请求正文的内容应为要通过远程 URL 创建的项的 JSON 表示形式。 请注意,通过远程 URL 下载文件时,服务不会以用户身份进行身份验证,因此 URL 必须是公开的。

响应

此方法返回有关如何在接受请求时监控下载进度的详细信息。

HTTP/1.1 202 Accepted
Location: https://api.onedrive.com/monitor/4A3407B5-88FC-4504-8B21-0AABD3412717

示例

POST /drive/items/{parent-item}/children
Content-Type: application/json
Prefer: respond-async

{
  "@microsoft.graph.sourceUrl": "http://wscont2.apps.microsoft.com/winstore/1x/e33e38d9-d138-42a1-b252-27da1924ca87/Screenshot.225037.100000.jpg",
  "name": "halo-screenshot.jpg",
  "file": { }
}

响应

服务将在接受请求后立即返回响应,并详细说明如何监视复制操作进度。

HTTP/1.1 202 Accepted
Location: https://api.onedrive.com/monitor/4A3407B5-88FC-4504-8B21-0AABD3412717

Location 头的值提供 URL,用于获取操作的最新状态,并在上传完成时发出提醒。

注解

不支持使用 URL 将项上传到 OneDrive for Business、SharePoint Online 和 SharePoint Server 2016。