Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Скачивание содержимого основного потока (файла) элемента driveItem. Можно скачать только объекты driveItem со свойством file .
Чтобы получить идентификатор загружаемого элемента, см . раздел Получение driveItem.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого 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 /shares/{shareIdOrEncodedSharingUrl}/driveItem/content
GET /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content
Заголовки запросов
Имя | Описание |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
If-None-Match | Если указан заголовок запроса, а предоставленный тег eTag (или cTag) совпадает с текущим тегом файла, то возвращается отклик HTTP 304 Not Modified . Необязательный параметр. |
Предпочитать: forceInfectedDownload | Если это указано, запрос может скачать зараженный файл. Для делегированных запросов, если параметр клиента DisallowInfectedFileDownload включен, скачивать файл могут только администраторы клиента или глобальные администраторы. Запросы только приложения скачивают зараженный файл независимо от параметров клиента. Необязательный параметр. |
Пример
В следующем примере показан запрос на скачивание полного файла.
Запрос
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
Скачивание файлов в приложениях на JavaScript
Чтобы скачать файлы в приложение JavaScript, нельзя использовать /content
API, так как он отвечает перенаправлением 302
.
Перенаправление 302
явно запрещено, если требуется предварительный доступ к ресурсам между источниками (CORS), например при указании заголовка авторизации.
Вместо этого приложение должно выбрать свойство @microsoft.graph.downloadUrl
, возвращающее тот же URL-адрес, на который перенаправляет ссылка /content
.
Затем этот URL-адрес можно запросить напрямую с помощью XMLHttpRequest.
Так как эти URL-адреса предварительно прошли проверку подлинности, их можно получить без предварительного запроса CORS.
Пример
Чтобы получить URL-адрес для скачивания файла, сначала отправьте запрос, включающий свойство @microsoft.graph.downloadUrl
:
GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl
Вызов возвращает идентификатор и URL-адрес для скачивания файла:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "12319191!11919",
"@microsoft.graph.downloadUrl": "https://..."
}
Затем вы можете отправить запрос XMLHttpRequest на URL-адрес, указанный в свойстве @microsoft.graph.downloadUrl
, чтобы получить файл.
Загрузка части заданного диапазона байтов
Чтобы загрузить из файла часть заданного диапазона байтов, приложение может использовать заголовок Range
, как указано в документе RFC 2616.
Необходимо добавить Range
заголовок к фактическому @microsoft.graph.downloadUrl
URL-адресу, а не к запросу для /content
.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
Вызов возвращает HTTP 206 Partial Content
ответ с диапазоном запросов байтов из файла.
Если не удается создать диапазон, заголовок Range может быть проигнорирован, и HTTP 200
будет возвращен ответ с полным содержимым файла.
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
<first 1024 bytes of file>
Ответы с ошибками
Дополнительные сведения о том, как возвращаются ошибки, см. в разделе Ответы на ошибки.