Télécharger le contenu driveItem
Espace de noms: microsoft.graph
Importante
Les API sous la version /beta
dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .
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 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
L’exemple suivant montre une demande de téléchargement d’un fichier complet.
Demande
GET /me/drive/items/{item-id}/content
Réponse
L’exemple suivant illustre la réponse.
Retourne une 302 Found
réponse redirigeant vers une URL de téléchargement pré-authentifiée pour le fichier.
Il s’agit de 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 clientes HTTP suivent la redirection 302 et commencent à 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
<first 1024 bytes of file>
Réponses d’erreur
Pour plus d’informations sur la façon dont les erreurs sont retournées, consultez Réponses d’erreur.