Adressage des ressources dans un lecteur sur OneDrive
Découvrez comment accéder aux éléments d’un lecteur sur OneDrive avec l’adressage basé sur l’ID et le chemin d’accès, et comment encoder correctement les chemins d’accès pour Microsoft Graph.
Adressage basé sur l’ID
OneDrive prend en charge l’adressage des éléments basé sur l’ID. Les éléments reçoivent un identificateur unique lorsqu’ils sont créés et l’ID est conservé pour les actions qu’un utilisateur réalise sur l’élément. L’attribution d’un nouveau nom ou le déplacement de l’élément ne modifie pas l’ID de l’élément.
L’adressage basé sur l’ID est utile pour suivre les éléments qui peuvent être déplacés par l’utilisateur à différents emplacements sur OneDrive. Tant que vous disposez de l’ID de l’élément et que l’élément existe, vous pouvez le retrouver.
Adressage basé sur le chemin d’accès
OneDrive prend également en charge l’adressage basé sur le chemin d’accès. Ainsi, vous pouvez utiliser une syntaxe URL conviviale pour traiter les éléments relatifs à la hiérarchie des éléments visibles dans OneDrive. Si vous connaissez la hiérarchie d’un élément, vous pouvez traiter directement cet élément et éviter d’effectuer des appels répétés pour découvrir chaque niveau de la hiérarchie.
Toutefois, étant donné que l’adressage basé sur le chemin d’accès dépend du nom de l’élément, l’attribution d’un nouveau nom ou le déplacement de l’élément vers un nouvel emplacement entraîne la modification du chemin d’accès de l’élément.
Vous pouvez utiliser l’adressage basé sur le chemin d’accès par rapport à n’importe quel élément dans OneDrive. Par exemple, lorsque vous utilisez des dossiers partagés, vous pouvez utiliser une URL basée sur le chemin d’accès relative à l’ID d’élément du dossier partagé pour traiter un élément dans le dossier partagé par chemin d’accès.
Exemples
Les exemples suivants montrent les différents formats d’URL disponibles pour accéder aux données. Toutes ces URL sont logiquement équivalentes et renvoient le contenu de MyFile.xlsx.
Exemple d’URL | Description |
---|---|
/drive/root:/Documents/MyFile.xlsx:/content |
Spécifié par chemin d’accès par rapport à la racine d’un lecteur. |
/drive/special/documents:/MyFile.xlsx:/content |
Spécifié par nom de fichier dans le dossier spécifique documents . |
/drive/items/0123456789AB/content |
Spécifié par ID de l’élément. |
/drives/AB0987654321/items/0123456789AB/content |
Spécifié par ID du lecteur et ID de l’élément. |
Codage du chemin d’accès
OneDrive prend en charge l’adressage des fichiers et des dossiers à l’aide du chemin d’accès de l’élément dans le OneDrive de l’utilisateur. Toutefois, étant donné que le chemin d’accès contient du contenu spécifié par l’utilisateur, qui peut potentiellement contenir des caractères qui ne sont pas sécurisés pour l’URL, vous devez garantir un encodage correct des segments de chemin d’accès.
Pour Microsoft Graph, les URL doivent être conformes à RFC 3986. Vous trouverez ci-dessous un résumé sur la façon de coder correctement les chemins d’accès pour Microsoft Graph.
Caractères OneDrive réservés
Les caractères suivants sont des caractères OneDrive réservés et ne peuvent pas être utilisés dans le dossier et les noms de fichiers OneDrive.
onedrive-reserved = "/" / "\" / "*" / "<" / ">" / "?" / ":" / "|"
onedrive-business-reserved
= "/" / "\" / "*" / "<" / ">" / "?" / ":" / "|" / "#" / "%"
Remarque
- Les noms de dossiers ne peuvent pas se terminer par un point (
.
). - Les noms de fichiers ou de dossiers ne peuvent pas commencer par un tilde (« ~ »).
Pour plus d’informations, consultez Restrictions et limitations lorsque vous synchronisez des bibliothèques SharePoint avec votre ordinateur via OneDrive pour le travail ou l’école.
Caractères de chemin d’accès à l’URI
Lors de la construction du segment de chemin d’accès d’une URL pour l’API Microsoft Graph, les caractères suivants sont autorisés pour les noms de chemin d’accès, en fonction de l’URI de RFC.
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
pct-encoded = "%" HEXDIG HEXDIG
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
Les caractères du nom de l’élément, qui ne sont pas inclus dans le groupe pchar
, comme #
et
(espace), doivent être codés en pourcentage.
Codage des caractères
Microsoft Graph utilise un codage standard en pourcentage, où les caractères non valides de l’URL sont codés avec un %, puis un code UTF-8 pour le caractère. Par exemple :
-
" "
->%20
-
"#"
->%23
Erreurs courantes de codage d’URL
Il n’est pas possible de coder une URL dans son intégralité dans un seul appel, car les règles de codage pour chaque segment d’une URL sont différentes. Sans codage approprié, l’URL non codée n’indiquera pas clairement quels segments contiennent quel contenu. Ainsi, vous devez coder le chemin d’accès à l’URL lorsque vous créez votre chaîne d’URL.
Par exemple, au lieu d’écrire ce qui suit :
string url = url_encode("https://graph.microsoft.com/v1.0/me/drive/root:/" + path + ":/children")
Écrivez ceci :
string url = "https://graph.microsoft.com/v1.0/me/drive/root:/" + url_path_encode(path) + ":/children")
Toutefois, toutes les bibliothèques de codage d’URL ne respectent pas toutes les exigences de codage standard du chemin d’URL.
.NET / C-Sharp / Visual Basic
Les classes .NET pour HttpUtility
et Uri
comprennent différentes méthodes de codage d’URL. Toutefois, aucune de ces méthodes ne permet de coder correctement tous les caractères réservés pour le composant du chemin d’accès à l’URL (y compris HttpUtility.UrlPathEncode
).
Au lieu d’utiliser ces méthodes, utilisez UriBuilder
pour concevoir une URL correctement formulée.
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
Pour le développement d’Objective-C, d’iOS et de Mac OS X, utilisez la méthode stringByAddingPercentEncodingWithAllowedCharacters
et [NSCharacterSet URLPathAllowedCharacterSet]
pour coder correctement le composant du chemin d’accès à l’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
Utilisez la classe Uri.Builder
pour créer une URL codée correctement.
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
Utilisez escape()
dans JavaScript pour coder correctement un composant du chemin d’accès.
var root = "https://graph.microsoft.com/v1.0/me/drive/root:";
var path = "/Documents/My Files/#nine.docx";
var url = root + escape(path);
Exemples
Voici un exemple d’utilisateur OneDrive (Adele) avec la hiérarchie de dossiers suivante :
OneDrive
\Adele's Files
\doc (1).docx
\estimate%s.docx
\Break#Out
\saved_game[1].bin
Pour traiter chacun des fichiers d’Adele, utilisez l’encodage en pourcentage, comme suit :
Chemin | URL codée pour le chemin d’accès |
---|---|
\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 |