Скачивание содержимого элемента DriveItem
В этой статье рассказывается, как скачать содержимое основного потока (файла) элемента DriveItem. Вы можете скачать только те элементы driveItem, у которых имеется свойство file.
Разрешения
Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Тип разрешения | Разрешения (в порядке повышения привилегий) |
---|---|
Делегированные (рабочая или учебная учетная запись) | Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All |
Для приложений | Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All |
HTTP-запрос
GET /drives/{drive-id}/items/{item-id}/content
GET /groups/{group-id}/drive/items/{item-id}/content
GET /me/drive/root:/{item-path}:/content
GET /me/drive/items/{item-id}/content
GET /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content
Необязательные заголовки запросов
Имя | Значение | Описание |
---|---|---|
if-none-match | String | Если указан этот заголовок запроса, а предоставленный тег eTag (или cTag) совпадает с текущим тегом файла, то будет возвращен ответ HTTP 304 Not Modified . |
Пример
В примере ниже показано, как скачать весь файл.
GET /me/drive/items/{item-id}/content
Ответ
Возвращает отклик 302 Found
, перенаправляя к URL-адресу загрузки файла, прошедшему предварительную проверку подлинности.
Это такой же URL-адрес, доступный с помощью свойства @microsoft.graph.downloadUrl
в ресурсе DriveItem.
Чтобы скачать содержимое файла, приложению необходимо следовать заголовку Location
в ответе.
Многие библиотеки клиентов HTTP будут автоматически следовать перенаправлению 302 и немедленно начинать загрузку файла.
URL-адреса загрузки, прошедшие предварительную проверку подлинности, действительны только на протяжении короткого периода времени (несколько минут) и не требуют заголовка Authorization
для загрузки.
HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi
Загрузка части заданного диапазона байтов
Чтобы загрузить из файла часть заданного диапазона байтов, приложение может использовать заголовок Range
, как указано в документе RFC 2616.
Обратите внимание, что заголовок Range
необходимо добавлять в фактический URL-адрес @microsoft.graph.downloadUrl
, а не в запрос для /content
.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
Это позволит вернуть отклик HTTP 206 Partial Content
с запрашиваемым диапазоном байтов из файла.
Если не удается создать диапазон, можно проигнорировать заголовок диапазона, после чего отклик HTTP 200
возвращается с полным содержимым файла.
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
Content-Type: application/octet-stream
<first 1024 bytes of file>
Ответы с ошибками
Дополнительные сведения о возвращении ошибок см. в статье Ответы с ошибками.