下载 DriveItem 的内容

下载 DriveItem 的内容。只可以下载具有文件属性的 driveItem。

先决条件

要执行此 API,需要以下范围之一:

  • Files.Read
  • Files.ReadWrite
  • Files.Read.All
  • Files.ReadWrite.All
  • Sites.Read.All
  • Sites.ReadWrite.All

HTTP 请求

GET /me/drive/root:/{item-path}:/content
GET /me/drive/items/{item-id}/content
GET /drives/items/{item-id}/content
GET /groups/{group-id}/drive/items/{item-id}/content

请求标头

名称 说明
if-none-match String 如果包含此请求标头,且提供的 eTag(或 cTag)与文件中的当前标记不匹配,则返回 HTTP 304 Not Modified 响应。

请求正文

请勿提供此方法的请求正文。

示例

下面是一个如何调用此 API 的示例。

GET https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/content
响应

返回 302 Found 响应,该响应重定向到文件的预先身份验证的下载 URL。这是可通过 DriveItem 上的 @microsoft.graph.downloadUrl 属性获得的同一个 URL。

若要下载该文件的内容,应用程序将需要遵循响应中的 Location 标头。许多 HTTP 客户端库将自动遵循 302 重定向并立即开始下载文件。

预先身份验证的下载 URL 仅在较短的一段时间 (几分钟后)内有效,不需要 Authorization 标头即可下载。

HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi

部分范围下载

若要从文件中下载部分范围的字节,应用程序可以使用 RFC 2616 中指定的 Range 标头。请注意,必须将 Range 标头附加到实际 @microsoft.graph.downloadUrl URL,而不是 /content 的请求。

GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023

此方法将返回 HTTP 206 Partial Content 响应和文件中字节的请求区域。如果无法生成此范围,可能会忽略 Range 标头,并会返回包含文件完整内容的 HTTP 200 响应。

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048

<first 1024 bytes of file>