DriveItem-Inhalt herunterladen
Namespace: microsoft.graph
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
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 /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
Content-Type: application/octet-stream
<first 1024 bytes of file>
Fehlerantworten
Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie unter Fehlerantworten.