Télécharger le contenu driveItem
Espace de noms: microsoft.graph
Téléchargez le contenu du flux principal (fichier) d’une ressource driveItem. Seuls les objets driveItem avec la propriété de fichier peuvent être téléchargés.
Pour obtenir l’ID de l’élément à télécharger, consultez Obtenir driveItem.
Cette API est disponible dans les déploiements de cloud national suivants.
Service global | Gouvernement des États-Unis L4 | Us Government L5 (DOD) | Chine gérée par 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.
Type d’autorisation | Autorisations avec privilèges minimum | Autorisations privilégiées plus élevées |
---|---|---|
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 /shares/{shareIdOrEncodedSharingUrl}/driveItem/content
GET /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content
En-têtes de demande
Nom | Description |
---|---|
Autorisation | Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation. |
if-none-match | Chaîne . 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 pour télécharger un fichier complet.
Demande
GET /me/drive/items/{item-id}/content
Réponse
Retourne une 302 Found
réponse redirigeant vers une URL de téléchargement pré-authentifiée pour le fichier, qui est la même URL disponible via la @microsoft.graph.downloadUrl
propriété sur l’objet 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é-authentifiées ne sont valides que pendant une courte période (quelques minutes) et ne nécessitent pas d’en-tête Authorization
à télécharger.
HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi
Téléchargement de fichiers dans les applications JavaScript
Pour télécharger des fichiers dans une application JavaScript, vous ne pouvez pas utiliser l’API /content
, car elle répond avec une 302
redirection.
Une 302
redirection est explicitement interdite lorsqu’un contrôle préalable CORS (Cross-Origin Resource Sharing) est requis, par exemple lors de la fourniture de l’en-tête Authorization.
Au lieu de cela, votre application doit sélectionner la propriété @microsoft.graph.downloadUrl
, qui renvoie la même URL vers laquelle /content
dirige.
Cette URL peut ensuite être demandée directement à l’aide de XMLHttpRequest.
Étant donné que ces URL sont pré-authentifiées, elles peuvent être récupérées sans demande de contrôle préalable CORS.
Exemple
Pour récupérer l’URL de téléchargement d’un fichier, émettez tout d’abord une requête qui inclut la propriété @microsoft.graph.downloadUrl
:
GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl
L’appel retourne l’ID et l’URL de téléchargement d’un fichier :
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "12319191!11919",
"@microsoft.graph.downloadUrl": "https://..."
}
Vous pouvez ensuite émettre une requête XMLHttpRequest pour obtenir l’URL fournie dans @microsoft.graph.downloadUrl
pour extraire le fichier.
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.
Vous devez ajouter l’en-tête Range
à l’URL réelle @microsoft.graph.downloadUrl
et non à la demande pour /content
.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
L’appel retourne une HTTP 206 Partial Content
réponse avec la plage d’octets de requête du fichier.
Si la plage ne peut pas être générée, l’en-tête de plage peut être ignoré et une HTTP 200
réponse est retourné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.