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:

  1. Als Erstes codieren Sie die URL mithilfe von Base64.
  2. 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.
  3. 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('+','-');

Optionale Anforderungsheader

Name Typ Beschreibung
Prefer string Optional. 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

Obwohl das SharedDriveItem-Element nützliche Informationen enthält, möchten die meisten Apps direkt auf das freigegebene DriveItem-Element 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.