Странное поведение Sharepoint Graph API при попытке получить ссылку для скачивания файла - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь получить содержимое файла. Когда я звоню

GET /sites/{site-id}/drive/root:/{item-path}

, ответ содержит всю информацию о файле, но поле @ microsoft.graph.downloadUrl не возвращается.

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('domain.sharepoint.com%2Ccc252463-cda2-3eb2-b15e-8836305f1420%2Cc0db7f82-b16f-4fe5-9885-7e434b11e5b8')/drives('b%21k3l2zKLNsk50Log2MF7UIBtTYFV32M5EtW4ZTyYF38gyZs2y-wOfSL0tPWbYys-4')/root/$entity", 
  "cTag": "\"c:{0e8182ec-5ee9-41e6-96ba-372340f873cb},1\"", 
  "createdBy": {
    "user": {
      "displayName": "Slava", 
      "email": "slava@domain.onmicrosoft.com", 
      "id": "1bf758e3-d0f7-1111-88a9-7e13f98efa01"
    }
  }, 
  "createdDateTime": "2020-03-22T20:29:23Z", 
  "eTag": "\"{0E8182EC-5EE9-41E6-96BA-372340F873CB},1\"", 
  "file": {
    "hashes": {
      "quickXorHash": "cwjdhie41VYT6k3bdKT/y30bKX0="
    }, 
    "mimeType": "application/pdf"
  }, 
  "fileSystemInfo": {
    "createdDateTime": "2020-03-22T20:29:23Z", 
    "lastModifiedDateTime": "2020-03-22T20:29:23Z"
  }, 
  "id": "01J7TAN47MQKAQ52K64ZAZNORXENAPQ46L", 
  "lastModifiedBy": {
    "user": {
      "displayName": "Slava", 
      "email": "slava@domain.onmicrosoft.com", 
      "id": "1bf758e3-d0f7-1111-88a9-7e13f98efa01"
    }
  }, 
  "lastModifiedDateTime": "2020-03-22T20:29:23Z", 
  "name": "A Survey of Applications of Markov Decision Processes.pdf", 
  "parentReference": {
    "driveId": "b!k3l2zKLNsk50Log2MF7UIBtTYFV32M5EtW4ZTyYF38gyZs2y-wOfSL0tPWbYys-4", 
    "driveType": "documentLibrary", 
    "id": "01J7TAN456Y2GOVW7725BZO354PWSELRRZ", 
    "path": "/drives/b!k3l2zKLNsk50Log2MF7UIBtTYFV32M5EtW4ZTyYF38gyZs2y-wOfSL0tPWbYys-4/root:"
  }, 
  "size": 6590404, 
  "webUrl": "https://domain.sharepoint.com/sites/Test/Shared%20Documents/A%20Survey%20of%20Applications%20of%20Markov%20Decision%20Processes.pdf"
}

Также, если в заголовках для GET Я не помещаю:

Prefer="apiversion=2.1"

Я получаю сообщение об ошибке, что элемент не найден (попробовал почтальон и код). Если я перейду на:

GET /sites/{site-id}/drive/root:/{item-path}:/content

, тогда я получаю ответ 302 с заголовком Location с URL-адресом, так что теперь я могу получить контент из файла Sharepoint и проверить, что загруженный файл в порядке (используя ha sh), мне нужно сделать 3 вызова: сначала для получения всех метаданных файла, затем для получения URL-адреса, а затем для получения содержимого.

Итак, два вопроса:

  1. Почему я не могу получить @ microsoft.graph.downloadUrl в / sites / {site-id} / drive / root: / {item-path}
  2. Почему без предпочтительного элемента заголовка нет найдено?

Посоветуйте, пожалуйста. Спасибо

...