Descarga del contenido driveItem
Espacio de nombres: microsoft.graph
Descargue el contenido de la secuencia principal (archivo) de un objeto driveItem. Solo se pueden descargar objetos driveItem con la propiedad file .
Para obtener el identificador del elemento que se va a descargar, consulte Obtener driveItem.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
Servicio global | Gobierno de EE. UU. L4 | Us Government L5 (DOD) | China operada por 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Permissions
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso | Permisos con privilegios mínimos | Permisos con privilegios más altos |
---|---|---|
Delegado (cuenta profesional o educativa) | Files.Read | Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All |
Delegado (cuenta personal de Microsoft) | Files.Read | Files.ReadWrite, Files.Read.All, Files.ReadWrite.All |
Aplicación | Files.Read.All | Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All |
Solicitud HTTP
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 /shares/{shareIdOrEncodedSharingUrl}/driveItem/content
GET /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content
Encabezados de solicitud
Nombre | Descripción |
---|---|
Authorization | {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización. |
if-none-match | Cadena . 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 . |
Ejemplo
Este es un ejemplo para descargar un archivo completo.
Solicitud
GET /me/drive/items/{item-id}/content
Respuesta
Devuelve una 302 Found
respuesta que redirige a una dirección URL de descarga autenticada previamente para el archivo, que es la misma dirección URL disponible a través de la @microsoft.graph.downloadUrl
propiedad en DriveItem.
Para descargar el contenido del archivo, la aplicación debe seguir el Location
encabezado de la respuesta.
Muchas bibliotecas de cliente HTTP seguirán de forma automática el redireccionamiento 302 e iniciarán la descarga del archivo de forma inmediata.
Las direcciones URL de descarga autenticadas previamente solo son válidas durante un breve período de tiempo (unos minutos) y no requieren que se descargue un Authorization
encabezado.
HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi
Descargar archivos en aplicaciones de JavaScript
Para descargar archivos en una aplicación de JavaScript, no puede usar la /content
API, ya que responde con una 302
redirección.
Se 302
prohíbe explícitamente un redireccionamiento cuando se requiere un prefabricado de uso compartido de recursos entre orígenes (CORS), como cuando se proporciona el encabezado Authorization.
En su lugar, la aplicación debe seleccionar la propiedad @microsoft.graph.downloadUrl
que devuelve la misma URL a la que dirige /content
.
Esta dirección URL puede solicitarse después directamente con XMLHttpRequest.
Dado que estas direcciones URL están autenticadas previamente, se pueden recuperar sin una solicitud preparatoria de CORS.
Ejemplo
Para recuperar la dirección URL de descarga de un archivo, primero realice una solicitud que incluya la propiedad @microsoft.graph.downloadUrl
:
GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl
La llamada devuelve el identificador y la dirección URL de descarga de un archivo:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "12319191!11919",
"@microsoft.graph.downloadUrl": "https://..."
}
Después, puede realizar una solicitud XMLHttpRequest para la dirección URL proporcionada en @microsoft.graph.downloadUrl
para recuperar el archivo.
Descargas de rango parcial
Para descargar un rango parcial de bytes del archivo, la aplicación puede usar el encabezado Range
como se especifica en RFC 2616.
Debe anexar el Range
encabezado a la dirección URL real @microsoft.graph.downloadUrl
y no a la solicitud de /content
.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
La llamada devuelve una HTTP 206 Partial Content
respuesta con el intervalo de solicitudes de bytes del archivo.
Si no se puede generar el intervalo, el encabezado Range se puede omitir y se devolvería una HTTP 200
respuesta con el contenido completo del archivo.
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
Content-Type: application/octet-stream
<first 1024 bytes of file>
Respuestas de error
Vea Respuestas de error para obtener más información sobre la manera en que se devuelven los errores.