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.