Descargar el contenido de un objeto DriveItemDownload the contents of a DriveItem

Espacio de nombres: microsoft.graphNamespace: microsoft.graph

Descargue el contenido de la secuencia principal (archivo) de un DriveItem.Download the contents of the primary stream (file) of a DriveItem. Solo se pueden descargar objetos driveItem con la propiedad file.Only driveItems with the file property can be downloaded.

PermisosPermissions

Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Tipo de permisoPermission type Permisos (de menos a más privilegiados)Permissions (from least to most privileged)
Delegado (cuenta profesional o educativa)Delegated (work or school account) Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.AllFiles.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All
Delegado (cuenta personal de Microsoft)Delegated (personal Microsoft account) Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.AllFiles.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All
AplicaciónApplication Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.AllFiles.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All

Solicitud HTTPHTTP request

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

Encabezados de solicitud opcionalesOptional request headers

NombreName ValorValue DescripciónDescription
if-none-matchif-none-match StringString Si se incluye el encabezado de la solicitud y la eTag (o cTag) proporcionada coincide con la etiqueta actual del archivo, se devuelve una respuesta HTTP 304 Not Modified.If this request header is included and the eTag (or cTag) provided matches the current tag on the file, an HTTP 304 Not Modified response is returned.

EjemploExample

Este es un ejemplo para descargar un archivo completo.Here is an example to download a complete file.

GET /me/drive/items/{item-id}/content

RespuestaResponse

Devuelve una respuesta 302 Found que redirige a una URL de descarga autenticada previamente para el archivo. Se trata de la misma dirección URL disponible mediante la propiedad @microsoft.graph.downloadUrl del objeto DriveItem.Returns a 302 Found response redirecting to a pre-authenticated download URL for the file. This is the same URL available through the @microsoft.graph.downloadUrl property on the DriveItem.

Para descargar el contenido del archivo, la aplicación tendrá que seguir el encabezado Location en la respuesta.To download the contents of the file your application will need to follow the Location header in the response. Muchas bibliotecas de cliente HTTP seguirán de forma automática el redireccionamiento 302 e iniciarán la descarga del archivo de forma inmediata.Many HTTP client libraries will automatically follow the 302 redirection and start downloading the file immediately.

Las URL de descarga autenticadas previamente solo son válidas durante un breve período de tiempo (unos minutos) y no requieren un encabezado Authorization para descargarlas.Pre-authenticated download URLs are only valid for a short period of time (a few minutes) and do not require an Authorization header to download.

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

Descargas de rango parcialPartial range downloads

Para descargar un rango parcial de bytes del archivo, la aplicación puede usar el encabezado Range como se especifica en RFC 2616. Tenga en cuenta que debe anexar el encabezado Range a la dirección URL @microsoft.graph.downloadUrl real y no a la solicitud de /content.To download a partial range of bytes from the file, your app can use the Range header as specified in RFC 2616. Note that you must append the Range header to the actual @microsoft.graph.downloadUrl URL and not to the request for /content.

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

Esto devolverá una respuesta HTTP 206 Partial Content con el rango de solicitud de bytes del archivo. Si no se puede generar el rango, se puede omitir el encabezado Range y se devolverá una respuesta HTTP 200 con el contenido completo del archivo.This will return an HTTP 206 Partial Content response with the request range of bytes from the file. If the range cannot be generated the Range header may be ignored and an HTTP 200 response would be returned with the full contents of the file.

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
Content-Type: application/octet-stream

<first 1024 bytes of file>

Respuestas de errorError responses

Vea Respuestas de error para obtener más información sobre la manera en que se devuelven los errores.See Error Responses for more info about how errors are returned.