DriveItem-Inhalt herunterladen
Namespace: microsoft.graph
Wichtig
Die APIs unter der /beta
Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Laden Sie die Inhalte des primären Streams (Datei) eines driveItem herunter. Nur driveItem-Objekte mit der Dateieigenschaft können heruntergeladen werden.
Informationen zum Abrufen der ID des elements, das heruntergeladen werden soll, finden Sie unter Abrufen von driveItem.
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
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
Das folgende Beispiel zeigt eine Anforderung zum Herunterladen einer vollständigen Datei.
Anforderung
GET /me/drive/items/{item-id}/content
Antwort
Das folgende Beispiel zeigt die Antwort.
Gibt eine 302 Found
Antwort zurück, die an eine vorab authentifizierte Download-URL für die Datei umgeleitet wird.
Es handelt 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 der 302-Umleitung und beginnen sofort mit dem Herunterladen 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 sie 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 /content
anfü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
<first 1024 bytes of file>
Fehlerantworten
Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie unter Fehlerantworten .