Поделиться через


Использование удаленных элементов для доступа к общим файлам и папкам

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.