Télécharger le contenu d’une ressource DriveItem

Téléchargez le contenu du flux principal (fichier) d’une ressource DriveItem. Seules les ressources DriveItem avec la propriété file peuvent être téléchargées.

Autorisations

L’une des autorisations suivantes est requise pour appeler cette API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins)
Déléguée (compte professionnel ou scolaire) Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All
Déléguée (compte Microsoft personnel) Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All
Application Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All

Requête 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 /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content

En-têtes de demande facultatifs

Nom Valeur Description
if-none-match String Si cet en-tête de demande est inclus et que l’eTag (ou cTag) fourni correspond à l’identité actuelle sur le fichier, une réponse HTTP 304 Not Modified est renvoyée.

Exemple

Voici un exemple de téléchargement d’un fichier complet.

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

Réponse

Renvoie une réponse 302 Found qui redirige vers une URL de téléchargement préalablement authentifiée pour le fichier. Il s’agit de la même URL disponible via la propriété @microsoft.graph.downloadUrl sur le DriveItem.

Pour télécharger le contenu du fichier, votre application doit suivre l’en-tête Location dans la réponse. De nombreuses bibliothèques de client HTTP suivront automatiquement la redirection 302 et commenceront à télécharger le fichier immédiatement.

Les URL de téléchargement préalablement authentifiées ne sont valides que pour une courte période de temps (quelques minutes) et ne nécessitent pas d’en-tête Authorization pour le téléchargement.

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

Téléchargements de plage partielle

Pour télécharger une plage partielle d’octets à partir du fichier, votre application peut utiliser l’en-tête Range comme spécifié dans RFC 2616. Notez que vous devez ajouter l’en-tête Range à l’URL @microsoft.graph.downloadUrl réelle et non à la demande pour /content.

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

Cela renverra une réponse HTTP 206 Partial Content avec la plage d’octets demandée à partir du fichier. Si la plage ne peut pas être générée, l’en-tête de la plage peut être ignoré et une réponse HTTP 200 est renvoyée avec le contenu complet du fichier.

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

<first 1024 bytes of file>

Réponses d’erreur

Pour plus d’informations sur la façon dont les erreurs sont renvoyées, voir Réponses d’erreur.