Zugriff auf freigegebene DriveItems
Namespace: microsoft.graph
Verwenden Sie für den Zugriff auf ein freigegebenes DriveItem-Element oder eine Sammlung freigegebener Elemente eine shareId oder Freigabe-URL.
Um eine Freigabe-URL mit dieser API verwenden zu können, muss die App die URL in ein Freigabetoken konvertieren.
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.ReadWrite | Files.ReadWrite.All, Sites.ReadWrite.All |
Delegiert (persönliches Microsoft-Konto) | Files.ReadWrite | Files.ReadWrite.All |
Anwendung | Files.ReadWrite.All | Sites.ReadWrite.All |
HTTP-Anforderung
GET /shares/{shareIdOrEncodedSharingUrl}
Pfadparameter
Parametername | Wert | Beschreibung |
---|---|---|
shareIdOrEncodedSharingUrl | string |
Erforderlich. Ein Freigabetoken, wie es von der API oder einer ordnungsgemäß codierten Freigabe-URL zurückgegeben wird. |
Codieren von Freigabe-URLs
Verwenden Sie zum Codieren einer Freigabe-URL die folgende Logik:
- Als Erstes codieren Sie die URL mithilfe von Base64.
- Konvertieren Sie das Base64-codierte Ergebnis in das base64url-Format ohne Füllzeichen, indem Sie
=
-Zeichen vom Ende des Werts entfernen und/
durch_
sowie+
durch-
ersetzen. - Fügen Sie
u!
an den Anfang der Zeichenfolge an.
Beispiel für die Codierung einer URL in C#:
string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');
Anforderungsheader
Name | Beschreibung |
---|---|
Authorization | Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung. |
Content-Type | application/json. Erforderlich. |
Prefer | Optional. Zeichenfolge. Legen Sie auf einen der prefer unten dokumentierten Werte fest. |
Headerwerte bevorzugen
Name | Beschreibung |
---|---|
redeemSharingLink | Wenn shareIdOrEncodedSharingUrl ein Freigabelink ist, gewähren Sie dem Aufrufer dauerhaften Zugriff auf das Element. |
redeemSharingLinkIfNecessary | Identisch mit redeemSharingLink, aber der Zugriff wird nur für die Dauer dieser Anforderung gewährt. |
redeemSharingLink sollte als gleichwertig mit dem Aufrufer betrachtet werden, der im Browser zum Freigabelink navigiert (die Freigabegeste akzeptiert), während redeemSharingLinkIfNecessary für Szenarien vorgesehen ist, in denen es lediglich darum geht, die Metadaten des Links einzusehen.
Antwort
Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK
und eine sharedDriveItem-Ressource im Antworttext zurückgegeben.
Beispiel
Anforderung
Das folgende Beispiel zeigt eine Anforderung zum Abrufen eines freigegebenen Elements:
GET /shares/{shareIdOrEncodedSharingUrl}
Antwort
Das folgende Beispiel zeigt die Antwort.
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "B64397C8-07AE-43E4-920E-32BFB4331A5B",
"name": "contoso project.docx",
"owner": {
"user": {
"id": "98E88F1C-F8DC-47CC-A406-C090248B30E5",
"displayName": "Ryan Gregg"
}
}
}
Direkter Zugriff auf das freigegebene Element
Während sharedDriveItem einige nützliche Informationen enthält, möchten die meisten Apps direkt auf das freigegebene DriveItem zugreifen. Die SharedDriveItem-Ressource enthält eine Stamm- und Elementbeziehung , die auf Inhalte innerhalb des Bereichs des freigegebenen Elements zugreifen kann.
Beispiel (einzelne Datei)
Anforderung
Durch das Anfordern der driveItem-Beziehung wird das DriveItem-Element zurückgegeben, das freigegeben wurde.
GET /shares/{shareIdOrUrl}/driveItem
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "contoso project.docx",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"file": {},
"size": 109112
}
Beispiel (freigegebener Ordner)
Anforderung
Durch das Anfordern der driveItem-Beziehung und das Erweitern der children-Sammlung wird das freigegebene DriveItem-Element mit Dateien im freigegebenen Ordner zurückgegeben.
GET /shares/{shareIdOrUrl}/driveItem?$expand=children
Antwort
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "Contoso Project",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"folder": {},
"size": 10911212,
"children": [
{
"id": "AFBBDD79-868E-452D-AD4D-24697D4A4044",
"name": "Propsoal.docx",
"file": {},
"size": 19001
},
{
"id": "A91FE90A-2F2C-4EE6-B412-C4FFBA3F71A6",
"name": "Update to Proposal.docx",
"file": {},
"size": 91001
}
]
}
Fehlerantworten
Weitere Informationen zur Rückgabe von Fehlern finden Sie im Artikel Fehlerantworten .
Bemerkungen
- Für OneDrive for Business und SharePoint erfordert die Freigabe-API immer eine Authentifizierung und kann nicht für den Zugriff auf anonym freigegebene Inhalte ohne Benutzerkontext verwendet werden.