Использование удаленных элементов для доступа к общим файлам и папкам
OneDrive поддерживает добавление общей папки в объект drive для упрощения доступа к ее содержимому. После добавления общей папки в OneDrive она отображается в корне, а ее содержимое синхронизируется с помощью клиента синхронизации OneDrive.
При перечислении коллекции элементов общие папки отображаются как элементы с аспектом remoteItem. Этот аспект содержит сведения, необходимые для доступа к содержимому общей папки с помощью API OneDrive.
Добавление общей папки на диск пользователя
Для добавления общей папки на диск пользователя должны выполняться следующие требования:
- У пользователя должно быть явное разрешение на доступ к общей папке без использования ссылки.
- Приложению необходим доступ к диску, на который будет добавлена общая папка, для чтения и записи.
Примечание. Общую папку можно добавить только в корне диска пользователя.
Чтобы добавить общую папку на диск, приложение отправляет корневой коллекции диска запрос POST, содержащий сведения об общей папке в аспекте remoteItem. Например:
POST /drive/root/children
Content-Type: application/json
{
"name": "Team Documents",
"remoteItem": {
"id": "12345abcde!1221",
"parentReference": { "driveId": "12345abcde" }
}
}
Примечание. Требуются идентификаторы driveId и id.
В случае успешного выполнения служба возвращает полные сведения о созданном удаленном элементе:
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",
}
Удаление общей папки с диска пользователя
Чтобы удалить общую папку, просто отправьте запрос DELETE для удаленного элемента:
DELETE /drive/items/{local-item-id}
При этом будет возвращен код 204 No Content, если общая папка была успешно удалена. Это не приводит к удалению общей папки и содержащихся в ней элементов.
HTTP/1.1 204 No Content
Перечисление содержимого общей папки
Удаленный элемент предоставляет сведения, необходимые для вызова элемента, который он представляет. Удаленный элемент представляет собой заполнитель для элемента на диске пользователя, но к нему невозможно получить доступ тем же способом, что и к элементу на диске пользователя. Например, в результате запроса удаленного элемента из коллекции children на сервере возникнет ошибка.
Рассмотрим следующий пример удаленного элемента:
{
"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"
}
Для перечисления содержимого этой общей папки используется свойство remoteItem, чтобы составить запрос к общей папке, хранящейся на удаленном диске.
GET /drives/{drive-id}/items/{item-id}/children
В этом примере возвращаются дочерние элементы общей папки. Для этого вызывается ее родительский диск.
HTTP/1.1 200 OK
Content-Type: application/json
{
"value":
[
{
"id": "12345abcde!9912",
"name": "Team Roster.xlsx",
"file": { },
"size": 90122
}
]
}
Использование команды Delta с удаленными элементами
При использовании команды delta на диске с общими папками ответ содержит сами общие папки, но содержащиеся в них элементы не возвращаются. Для каждой общей папки требуются отдельный вызов функции delta и отдельный кэшированный разностный маркер.
Перемещение элементов в общую папку
API OneDrive не поддерживает перемещение и копирование элементов в общую папку. Вы можете создавать элементы в папке, используя обычные действия для отправки с указанием свойств driveId и id ресурса remoteItem.