Adressieren von Ressourcen in einem Laufwerk auf OneDrive
Erfahren Sie, wie Sie auf Elemente innerhalb eines Laufwerks auf OneDrive mit ID- und pfadbasierter Adressierung zugreifen und Pfade für Microsoft Graph ordnungsgemäß codieren.
ID-basierte Adressierung
OneDrive unterstützt die ID-basierten Adressierung von Elementen. Elemente sind einer eindeutigen ID zugewiesen, wenn sie erstellt werden, und die ID bleibt über alle Aktionen, die ein Benutzer mit dem Element ausführt, bestehen. Das Umbenennen oder Verschieben des Elements ändert nicht die Element-ID.
ID-basierte Adressierung ist ein nützliches Verfahren zum Nachverfolgen von Elementen, die vom Benutzer an verschiedene Positionen auf OneDrive verschoben werden können. Solange Sie die Element-ID kennen und das Element vorhanden ist, können Sie es finden.
Pfadbasierte Adressierung
OneDrive unterstützt auch die pfadbasierte Adressierung. Dies ermöglicht Ihnen die Verwendung einer benutzerfreundlichen URL-Syntax zur Adressierung von Elementen in Bezug auf die Hierarchie von Elementen, die in OneDrive sichtbar sind. Wenn Sie zu einem Element die Hierarchie kennen, können Sie dieses Element direkt adressieren, ohne wiederholte Aufrufe zur Ermittlung jeder Hierarchieebene durchführen zu müssen.
Da jedoch die pfadbasierte Adressierung auf dem Namen des Elements beruht, führt das Umbenennen oder Verschieben des Elements an eine neue Position auch zu einer Änderung des Pfads.
Sie können die pfadbasierte Adressierung relativ zu jedem Element in OneDrive verwenden. Z. B. können Sie bei der Arbeit mit freigegebenen Ordnern eine pfadbasierte URL bezüglich der Element-ID des freigegebenen Ordners verwenden, um Inhalte in den freigegebenen Ordnern anhand des Pfads zu adressieren.
Beispiele
Die folgenden Beispiele zeigen die verschiedenen URL-Formate, die für den Zugriff auf Daten verfügbar sind. Alle diese URLs sind logisch gleichwertig und geben den Inhalt der Datei MyFile.xlsx zurück.
Beispiel-URL | Beschreibung |
---|---|
/drive/root:/Documents/MyFile.xlsx:/content |
Durch den Pfad in Bezug auf das Stammelement eines Laufwerks angegeben. |
/drive/special/documents:/MyFile.xlsx:/content |
Durch den Dateinamen im speziellen Ordner documents angegeben. |
/drive/items/0123456789AB/content |
Durch die Element-ID angegeben. |
/drives/AB0987654321/items/0123456789AB/content |
Durch die Laufwerk-ID und Element-ID angegeben. |
Pfadcodierung
OneDrive unterstützt die Adressierung von Dateien und Ordnern über den Pfad des Elements im OneDrive des Benutzers. Da der Pfad jedoch vom Benutzer angegebene Inhalte enthält, die möglicherweise Zeichen enthalten können, die nicht URL-sicher sind, sollten Sie die ordnungsgemäße Codierung aller Pfadsegmente sicherstellen.
Microsoft Graph erwartet, dass URLs den Vorgaben von RFC 3986 entsprechen. Im Folgenden finden Sie eine Übersicht zur richtigen Codierung von Pfaden für Microsoft Graph.
Für OneDrive reservierte Zeichen
Die folgenden Zeichen sind für OneDrive reservierte Zeichen und dürfen nicht für OneDrive-Ordner- und -Dateinamen verwendet werden.
onedrive-reserved = "/" / "\" / "*" / "<" / ">" / "?" / ":" / "|"
onedrive-business-reserved
= "/" / "\" / "*" / "<" / ">" / "?" / ":" / "|" / "#" / "%"
Hinweis
- Ordnernamen dürfen nicht mit einem Punkt enden (
.
). - Datei- oder Ordnernamen dürfen nicht mit einer Tilde („~“) beginnen.
Weitere Informationen finden Sie unter Einschränkungen und Beschränkungen beim Synchronisieren von SharePoint-Bibliotheken mit Ihrem Computer über OneDrive für Geschäfts-, Schul- oder Unikonten.
Zeichen für URI-Pfade
Bei der Erstellung des Pfadsegments einer URL für die Microsoft Graph-API sind die folgenden Zeichen für Pfadnamen zulässig, basierend auf dem URI-RFC.
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
pct-encoded = "%" HEXDIG HEXDIG
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
Zeichen für Elementnamen, die nicht in der Gruppe pchar
enthalten sind, z. B. #
und
(Leerzeichen), müssen Prozent-codiert werden.
Codieren von Zeichen
Microsoft Graph verwendet die standardmäßige Prozent-Codierung, bei der nicht-URL-fähige Zeichen mit einem % und dem UTF-8-Zeichencode für das Zeichen codiert werden. Zum Beispiel:
-
" "
->%20
-
"#"
->%23
Häufige Fehler bei der URL-Codierung
Sie können nicht die gesamte URL in einem Aufruf codieren, da die Regeln zur Codierung für jedes Segment einer URL unterschiedlich lauten. Ohne die richtige Codierung ist die nicht codierte URL nicht eindeutig im Hinblick darauf, welche Segmente welche Inhalte enthalten. Daher müssen Sie den URL-Pfad beim Erstellen der URL-Zeichenfolge codieren.
Beispiel: Statt diesem:
string url = url_encode("https://graph.microsoft.com/v1.0/me/drive/root:/" + path + ":/children")
Schreiben Sie Folgendes:
string url = "https://graph.microsoft.com/v1.0/me/drive/root:/" + url_path_encode(path) + ":/children")
Nicht alle URL-Codierungs-Bibliotheken berücksichtigen jedoch alle Anforderungen der standardmäßigen URL-Pfad-Codierung.
.NET/C-Sharp/Visual Basic
Die .NET-Klassen für HttpUtility
und Uri
enthalten verschiedene Methoden für die URL-Codierung. Keine dieser Methoden codiert jedoch alle reservierte Zeichen für die Pfadkomponente einer URL (einschließlich HttpUtility.UrlPathEncode
) richtig.
Statt dieser Methoden sollten Sie UriBuilder
zum Erstellen einer URL mit richtigen Escape-Zeichen verwenden.
UriBuilder builder = new UriBuilder("https://graph.microsoft.com");
builder.Path = "/v1.0/me/drive/root:/Documents/My Files/#nine.docx";
Uri url = builder.Uri;
Objective-C/iOS
Verwenden Sie für die Objective-C-, iOS- und Mac OS X-Entwicklung die stringByAddingPercentEncodingWithAllowedCharacters
-Methode und [NSCharacterSet URLPathAllowedCharacterSet]
zur ordnungsgemäßen Codierung der Pfadkomponente der URL.
NSString *root = @"https://graph.microsoft.com/v1.0/me/drive/root:/";
NSString *path = @"Documents/My Files/#nine.docx";
NSString *encPath = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLPathAllowedCharacterSet]];
NSURL *url = [[NSURL alloc] initWithString:[root stringByAppendingString:encPath]];
Android
Verwenden Sie die Uri.Builder
-Klasse zur Erstellung einer ordnungsgemäß codierten URL.
Uri.Builder builder = new Uri.Builder();
builder.
scheme("https").
authority("graph.microsoft.com").
appendPath("v1.0").
appendPath("me").
appendPath("drive").
appendPath("root:").
appendPath("Documents").
appendPath("My Files").
appendPath("#nine.docx");
String url = builder.build().toString();
JavaScript
Verwenden Sie escape()
in JavaScript zur ordnungsgemäßen Codierung einer Pfadkomponente.
var root = "https://graph.microsoft.com/v1.0/me/drive/root:";
var path = "/Documents/My Files/#nine.docx";
var url = root + escape(path);
Beispiele
Hier ist ein Beispiel eines OneDrive-Benutzers (Adele) mit der folgender Ordnerhierarchie:
OneDrive
\Adele's Files
\doc (1).docx
\estimate%s.docx
\Break#Out
\saved_game[1].bin
Um jede von Adeles Dateien zu adressieren, verwenden Sie die Prozent-Codierung wie folgt:
Pfad | Codierte URL für Pfad |
---|---|
\Adele's Files |
/root:/Adele's%20Files |
\...\doc (1).docx |
/root:/Adele's%20Files/doc%20(1).docx |
\...\estimate%.docx |
/root:/Adele's%20Files/estimate%25s.docx |
\Break#Out |
/root:/Break%23Out |
\...\saved_game[1].bin |
/root:/Break%23Out/saved_game[1].bin |