Mithilfe von Remote-Elementen auf freigegebene Dateien und Ordner zugreifen
OneDrive unterstützt das Hinzufügen eines freigegebenen Ordners zu einem Laufwerk, um den Zugriff auf Inhalte aus einem freigegebenen Ordner zu vereinfachen. Wenn OneDrive ein freigegebener Ordner hinzugefügt wird, wird der Ordner im Stammverzeichnis angezeigt, und sein Inhalt wird mithilfe des OneDrive-Synchronisierungsclients synchronisiert.
Beim Aufzählen einer Sammlung von Elementen werden freigegebene Ordner als Elemente mit den remoteItem-Facet angezeigt. Dieses Facet enthält die erforderlichen Informationen zum Zugreifen auf den Inhalt des freigegebenen Ordners mit der OneDrive-API.
Hinzufügen eines freigegebenen Ordners zum Laufwerk des Benutzers
Bevor ein freigegebener Ordner zum Laufwerk des Benutzers hinzugefügt werden kann, müssen die folgenden Anforderungen erfüllt sein:
- Der Benutzer hat explizite Berechtigung für den freigegebenen Ordner und greift nicht über einen Link auf den freigegebenen Ordner zu.
- Ihre App benötigt Lese-/Schreibzugriff auf das Laufwerk, dem der freigegebene Ordner hinzugefügt wird.
Hinweis: Ein freigegebener Ordner kann nur zum Stammordner eines Benutzerlaufwerks hinzugefügt werden.
Um den freigegebenen Ordner einem Laufwerk hinzuzufügen, sendet die App eine POST-Anforderung an die Stammsammlung des Laufwerks, die die Details des freigegebenen Ordners im remoteItem-Facet enthält. Zum Beispiel:
POST /drive/root/children
Content-Type: application/json
{
"name": "Team Documents",
"remoteItem": {
"id": "12345abcde!1221",
"parentReference": { "driveId": "12345abcde" }
}
}
Hinweis:driveId und id sind erforderlich.
Bei erfolgreiche Ausführung antwortet der Dienst mit den vollständigen Details des erstellten Remoteelements:
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",
}
Entfernen eines freigegebenen Ordners vom Laufwerk des Benutzers
Um einen freigegebenen Ordner zu entfernen, löschen Sie einfach das Remoteelement mit DELETE:
DELETE /drive/items/{local-item-id}
Die Meldung 204 Kein Inhalt wird zurückgegeben, wenn der freigegebene Ordner erfolgreich entfernt wurde. Der freigegebene Ordner oder im freigegebenen Ordner enthaltene Elemente werden dadurch nicht gelöscht.
HTTP/1.1 204 No Content
Aufzählen des Inhalts eines freigegebenen Ordners
Ein Remoteelement enthält die erforderlichen Informationen, um einen Aufruf an das tatsächliche Element zu senden, das es darstellt. Das Remoteelement ist ein Platzhalter für dieses Element auf dem Laufwerk des Benutzers, es kann aber nicht wie auf ein Element auf dem Laufwerk des Benutzers darauf zugegriffen werden. Wenn Sie z. B. die Sammlung children für ein Remoteelement anfordern, führt dies zu einem Fehler vom Server.
Betrachten Sie in diesem Beispiel das folgende Remoteelement:
{
"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"
}
Zum Aufzählen des Inhalts dieses freigegebenen Ordners wird die Eigenschaft remoteItem verwendet, um eine Anforderung an den freigegebenen Ordner auf dem Remotelaufwerk zu erstellen.
GET /drives/{drive-id}/items/{item-id}/children
Dieses Beispiel gibt die untergeordneten Elemente des freigegebenen Ordners zurück, indem ein Aufruf an das übergeordnete Laufwerk des freigegebenen Ordners gesendet wird.
HTTP/1.1 200 OK
Content-Type: application/json
{
"value":
[
{
"id": "12345abcde!9912",
"name": "Team Roster.xlsx",
"file": { },
"size": 90122
}
]
}
Verwenden von Delta mit Remoteelementen
Bei Verwendung von delta in einem Laufwerk mit freigegebenen Ordnern werden die freigegebenen Ordner selbst als Teil der Antwort zurückgegeben, die in einem freigegebenen Ordner enthaltenen Elemente werden hingegen nicht zurückgegeben. Für jeden freigegebenen Ordner sind ein separater Aufruf von delta und ein separates zwischengespeichertes Delta-Token erforderlich.
Verschieben von Elementen in einen freigegebenen Ordner
Die OneDrive-API unterstützt das Verschieben oder Kopieren von Elementen in einen freigegebenen Ordner nicht. Neue Elemente können im Ordner erstellt werden, indem die standardmäßigen Uploadaktionen verwendet und die driveId und id des Remoteelements als Ziel verwendet werden.