Inhalte von DriveItem herunterladen
Namespace: microsoft.graph
Warnung
Für diesen Endpunkt muss TLS 1.2 normal funktionieren. Microsoft hat die Einstellung von TLS 1.0 und 1.1 für Office 365- und Azure AD-Dienste angekündigt. Obwohl Microsoft Graph diese beiden Protokolle weiterhin unterstützt, treten möglicherweise Fehler auf Transportebene auf. Weitere Informationen zur Einstellung von TLS 1.0 und 1.1 finden Sie unter Aktivieren der Unterstützung für TLS 1.2 in Ihrer Umgebung.
Laden Sie die Inhalte des primären Streams (Datei) eines driveItem herunter. Es können nur driveItems mit der Eigenschaft file heruntergeladen werden.
Berechtigungen
Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie im Artikel zum Thema Berechtigungen.
| Berechtigungstyp | Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten) |
|---|---|
| Delegiert (Geschäfts-, Schul- oder Unikonto) | Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All |
| Delegiert (persönliches Microsoft-Konto) | Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All |
| Anwendung | Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All |
HTTP-Anforderung
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
Optionale Anforderungsheader
| Name | Wert | Beschreibung |
|---|---|---|
| if-none-match | String | Wenn dieser Anforderungsheader enthalten ist und das angegebene eTag (oder cTag) mit dem aktuellen Tag in der Datei übereinstimmt, wird die Antwort HTTP 304 Not Modified zurückgegeben. |
Beispiel
Dies ist ein Beispiel für das Herunterladen einer vollständigen Datei.
Anforderung
GET /me/drive/items/{item-id}/content
Antwort
Gibt eine 302 Found-Antwort zurück, mit der zu einer zuvor authentifizierten Download-URL umgeleitet wird. Dies ist dieselbe URL, die @microsoft.graph.downloadUrl-Eigenschaft für DriveItem verfügbar ist.
Zum Herunterladen der Inhalte der Datei muss die Anwendung dem Location-Header in der Antwort folgen. Viele HTTP-Clientbibliotheken folgen automatisch der 302-Umleitung und beginnen sofort mit dem Download der Datei.
Zuvor authentifizierte Download-URLs sind nur für einen kurzen Zeitraum (einige Minuten) gültig und erfordern keinen Authorization-Header für den Download.
HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi
Herunterladen von Dateien in JavaScript-Apps
Zum Herunterladen von Dateien in einer JavaScript-App können Sie die /content-API nicht verwenden, da diese mit einer 302-Umleitung antwortet.
Eine 302-Umleitung ist ausdrücklich nicht erlaubt, wenn eine (CORS) Preflight-Anforderung erforderlich ist, z. B. beim Bereitstellen des Autorisierung-Headers.
Stattdessen muss die App die Eigenschaft @microsoft.graph.downloadUrl auswählen, die die gleiche URL zurückgibt, an die mit /content umleitet.
Diese URL kann dann direkt mit XMLHttpRequest angefordert werden.
Da diese URLs vorab authentifiziert werden, können sie ohne CORS-Preflight-Anforderung abgerufen werden.
Beispiel
Um die Download-URL für eine Datei abzurufen, senden Sie zunächst eine Anforderung, die die Eigenschaft @microsoft.graph.downloadUrl enthält:
GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl
Hiermit werden die ID und die Download-URL für eine Datei zurückgegeben:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "12319191!11919",
"@microsoft.graph.downloadUrl": "https://..."
}
Anschließend können Sie eine XMLHttpRequest für die in @microsoft.graph.downloadUrl angegebene URL senden, um die Datei abzurufen.
Teilbereichdownloads
Zum Herunterladen eines Teilbereichs von Bytes aus einer Datei kann die App den Range-Header gemäß der Angabe in RFC 2616 verwenden. Sie müssen den Range-Header an die tatsächliche @microsoft.graph.downloadUrl-URL anfügen, und nicht an die Anforderung für /content.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
Es wird eine HTTP 206 Partial Content-Antwort mit dem Anforderungsbereich von Bytes aus der Datei zurückgegeben. Wenn der Bereich nicht generiert werden kann, wird der Range-Header möglicherweise ignoriert und gibt eine HTTP 200-Antwort mit dem gesamten Inhalt der Datei zurück.
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
Content-Type: application/octet-stream
<first 1024 bytes of file>
Fehlerantworten
Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie unter Fehlerantworten.
Feedback
Feedback senden und anzeigen für