Как загрузить локальный файл в sharepoint с помощью Graph API? - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь загрузить локальный файл PDF в точку общего доступа с помощью Graph API, но метод PUT просто позволяет мне создать новый файл в SharePoint, но не позволяет мне загрузить существующий локальный файл C: / Drive PDF file

Вот API, который я использую

PUT https://graph.microsoft.com/v1.0/drives/ {id-диска} / root: / SharePointFilePath / file-name: / content

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Предыдущий тестовый сценарий для загрузки файла в SharePoint с помощью PnP PowerShell.

https://social.technet.microsoft.com/Forums/msonline/en-US/25191b51-41dd-4f4b-93aa-a46594c9a184/uploading-a-file-to-sharepoint-online-using-microsoft-graph-api?forum=onlineservicessharepoint

Connect-PnPOnline -AppId 'yourAzure app id' -AppSecret "yourAzure app secret" -AADDomain 'xxx.onmicrosoft.com'
$accessToken= Get-PnPAccessToken
$apiUrl = "https://graph.microsoft.com/v1.0/sites/xxx.sharepoint.com,x,x/drives/driveid/items/01AKXHS4ELSEOTLPZHZZDYYBOW57WR6HK6:/test.xlsx:/content"
$path="C:\Lee\Script\testdata.xlsx"
$file=[IO.File]::ReadAllBytes($path)
Invoke-RestMethod -Headers @{Authorization = "Bearer $accessToken"} -Uri $apiUrl -Method Put -Body $file -ContentType "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
0 голосов
/ 18 июня 2020

Согласно здесь, это правильная конечная точка. однако вам необходимо отправить файл как двоичный поток в теле. https://docs.microsoft.com/en-us/graph/api/driveitem-put-content?view=graph-rest-1.0&tabs=http

Это означает, что вам нужно прочитать локальный файл PDF в двоичный поток и отправить его в конечную точку в теле запроса на размещение. Например, в качестве теста вы можете создать обычный текстовый файл с телом в виде строки и типом содержимого как текст.

также, если он больше 4 МБ, вам необходимо использовать другой метод. https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/driveitem_createuploadsession в основном сеанс загрузки.

...