SharePoint REST API возвращает неполное содержимое файла во время загрузки - PullRequest
0 голосов
/ 14 января 2020

Я работаю над приложением для извлечения и загрузки данных SharePoint. Для каждой папки в SharePoint я могу получить список всех файлов в данной папке, используя следующую конечную точку API REST API:

/_api/web/GetFolderById('<folder_guid>')/Files

Ожидаемый размер и guid предоставляются для каждого файла, поэтому Я могу использовать их, когда хочу скачать файл. Затем я использую следующую конечную точку из API REST SharePoint для фактического получения содержимого файла:

/_api/web/GetFileById('<file_guid>')/$value

Время от времени при загрузке файла я получаю меньше данных, чем ожидалось: размер загруженных данных просто отличается от значения, которое я получаю при получении списка свойств файлов. Однако, когда я пытаюсь получить его содержимое снова, оно может быть успешно загружено (размер загруженных данных равен ожидаемому значению), или я могу получить другие неполные данные.

Я проверил, что первая конечная точка (одна использовалась для получения Свойства всех файлов в папке) возвращает правильный размер файла. Проблема в вызове второго.

Я вижу, что в ответе есть заголовок "Transfer-Encoding" со значением "chunked" в ответе. Поэтому, когда мой http-клиент выполняет загрузку фрагментированных данных и если в какой-то момент получен нулевой фрагмент, мы достигли конца тела по определению . Похоже, что в некоторых случаях SharePoint либо возвращает неполные данные, либо ноль порций, когда их не нужно отправлять.

В чем может быть причина такого странного поведения? Это известная проблема?

Ответы [ 2 ]

0 голосов
/ 29 января 2020

На самом деле мы также видим это странное поведение, многие файлы - это просто небольшие aspx-файлы, размером около 3-4 КБ, и они постоянно меньше на 15% и больше, чем указано в свойствах файла. Мы также используем REST API, и это действительно расстраивает. Все эти странные ошибки в Sharepoint Online очень раздражают.

0 голосов
/ 15 января 2020

это интересная топи c ... эти файлы большие? как более 1 ГБ? Казалось бы, загрузка файла чанка не поддерживается в SP Online. Лучший вариант для пользователя RP C. Пожалуйста, смотрите ссылки для примеров: https://sharepoint.stackexchange.com/questions/184789/download-large-files-from-sharepoint-online

https://social.msdn.microsoft.com/Forums/office/en-US/03e55d41-1daf-46a5-b61d-2d80139123f4/download-large-files-using-rest?forum=sharepointdevelopment

https://piyushksingh.com/2016/08/15/download-large-files-from-sharepoint-online/

Вы также можете проверить MS Graph API, если, возможно, будет работать лучше для этого случая

https://docs.microsoft.com/en-us/graph/api/driveitem-get-content?view=graph-rest-1.0&tabs=http

... Я надеюсь, что это поможет

...