Accéder aux fichiers et dossiers partagés via les éléments distants

OneDrive prend en charge l’ajout d’un dossier partagé à un lecteur en vue de faciliter l’accès au contenu à partir d’un dossier partagé. Lorsqu’un dossier partagé est ajouté à OneDrive, il apparaît à la racine et son contenu est synchronisé à l’aide du client de synchronisation OneDrive.

Lors de l’énumération d’une collection d’éléments, les dossiers partagés s’affichent sous forme d’éléments avec la facette remoteItem. Cette facette contient les informations nécessaires pour accéder au contenu du dossier partagé à l’aide de l’API OneDrive.

Ajouter un dossier partagé sur le lecteur de l’utilisateur

Pour que vous puissiez ajouter un dossier partagé au lecteur de l’utilisateur, les conditions suivantes doivent être réunies :

  • L’utilisateur dispose d’une autorisation explicite sur le dossier partagé et n’accède pas à ce dernier via un lien.
  • Votre application a besoin d’un accès en lecture/écriture au lecteur auquel le dossier partagé va être ajouté.

Remarque : Un dossier partagé peut uniquement être ajouté à la racine du lecteur d’un utilisateur.

Pour ajouter le dossier partagé à un lecteur, votre application traite par POST la collection racine du lecteur avec les détails du dossier partagé dans la facette remoteItem. Par exemple :

POST /drive/root/children
Content-Type: application/json

{
  "name": "Team Documents",
  "remoteItem": {
      "id": "12345abcde!1221",
      "parentReference": { "driveId": "12345abcde" }
  }
}

Remarque :driveId et id sont requis.

Si l’opération réussit, le service répond avec les détails complets de l’élément distant créé :

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "98765432!12399",
  "name": "Team Documents",
  "remoteItem": {
    "id": "12345abcde!1221",
    "parentReference": {
      "driveId": "12345abcde"
    },
    "folder": { "childCount": 15 }
  },
  "lastModifiedDateTime": "2015-08-10T13:47:11Z",
  "createdDateTime": "2015-08-10T13:47:11Z",
}

Supprimer un dossier partagé du lecteur de l’utilisateur

Pour supprimer un dossier partagé, supprimez (DELETE) simplement l’élément distant :

DELETE /drive/items/{local-item-id}

Un message 204 No Content est renvoyé si le dossier partagé a été supprimé. Cette opération ne supprime pas le dossier partagé ou les éléments qu’il contient.

HTTP/1.1 204 No Content

Énumérer le contenu d’un dossier partagé

Un élément distant fournit les informations nécessaires pour effectuer un appel vers l’élément réel qu’il représente. L’élément distant est un espace réservé pour cet élément dans le lecteur de l’utilisateur, mais n’est pas accessible comme un élément situé dans le lecteur de l’utilisateur. Par exemple, une demande de collection d’enfants pour un élément distant entraîne une erreur à partir du serveur.

Dans cet exemple, prenons l’élément à distance suivant :

{
  "id": "98765432!12399",
  "name": "Team Documents",
  "remoteItem": {
    "id": "12345abcde!1221",
    "parentReference": {
      "driveId": "12345abcde"
    }
  },
  "lastModifiedDateTime": "2015-08-10T13:47:11Z",
  "createdDateTime": "2015-08-10T13:47:11Z"
}

Pour énumérer le contenu de ce dossier partagé, la propriété remoteItem est utilisée pour construire une requête vers le dossier partagé dans le lecteur distant.

GET /drives/{drive-id}/items/{item-id}/children

Cet exemple renvoie les enfants du dossier partagé, en émettant l’appel vers le lecteur parent du dossier partagé.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "value":
  [
    {
      "id": "12345abcde!9912",
      "name": "Team Roster.xlsx",
      "file": {  },
      "size": 90122
    }
  ]
}

Utilisation de Delta avec des éléments distants

Lorsque vous utilisez delta dans un lecteur avec des dossiers partagés, les dossiers partagés eux-mêmes sont renvoyés dans le cadre de la réponse, mais les éléments contenus dans un dossier partagé ne sont pas renvoyés. Un appel séparé à delta et un jeton delta séparé sont requis pour chaque dossier partagé.

Déplacement d’éléments vers un dossier partagé

L’API OneDrive ne prend pas en charge le déplacement ou la copie d’éléments dans un dossier partagé. De nouveaux éléments peuvent être créés dans le dossier à l’aide d’actions de chargement standard, en ciblant les objets remoteItem driveId et id.