Inhalte von DriveItem herunterladen

Namespace: microsoft.graph

Laden Sie die Inhalte des primären Streams (Datei) eines driveItem herunter. Es können nur driveItems mit der Eigenschaft file heruntergeladen werden.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
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
App 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

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.
if-none-match Schnur. 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

Hier sehen Sie ein Beispiel zum Herunterladen einer vollständigen Datei.

Anforderung

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

Antwort

Gibt eine 302 Found Antwort zurück, die zu einer vorab authentifizierten Download-URL für die Datei umleitet. Dabei handelt es sich um dieselbe URL, die über die @microsoft.graph.downloadUrl -Eigenschaft für das DriveItem-Objekt verfügbar ist.

Um den Inhalt der Datei herunterzuladen, muss Ihre Anwendung dem Location Header in der Antwort folgen. Viele HTTP-Clientbibliotheken folgen automatisch der 302-Umleitung und beginnen sofort mit dem Download der Datei.

UrLs für vorab authentifizierte Downloads sind nur für einen kurzen Zeitraum (einige Minuten) gültig und erfordern Authorization zum Herunterladen keinen Header.

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 explizit verboten, wenn ein CORS-Preflight (Cross-Origin Resource Sharing) erforderlich ist, z. B. beim Bereitstellen des Autorisierungsheaders.

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 sind, können sie ohne eine CORS-Preflightanforderung 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

Der Aufruf gibt die ID und die Download-URL für eine Datei zurück:

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 und nicht an die Anforderung für /contentanfügen.

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

Der Aufruf gibt eine HTTP 206 Partial Content Antwort mit dem Anforderungsbereich von Bytes aus der Datei zurück. Wenn der Bereich nicht generiert werden kann, wird der Range-Header möglicherweise ignoriert, und es wird eine HTTP 200 Antwort mit dem vollständigen Inhalt der Datei zurückgegeben.

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.