Я работаю над приложением для извлечения и загрузки данных 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 либо возвращает неполные данные, либо ноль порций, когда их не нужно отправлять.
В чем может быть причина такого странного поведения? Это известная проблема?