API версий личных списков OneDrive не предоставляет уникальный идентификатор для текущей версии - PullRequest
2 голосов
/ 10 июня 2019

Я получаю доступ к OneDrive в мобильном приложении, используя msgraph iOS SDK . Я хочу позволить пользователю управлять версиями файла, и для этого я использую список версий API . Кроме того, я кеширую уже загруженные файлы на мобильном устройстве. Я столкнулся с проблемой с OneDrive personal, которая несколько отличается от бизнеса OneDrive в отношении версий файлов.

Кажется, что при выводе списка версий файла personal назначает «current» в качестве идентификатора версии для текущей версии, тогда как business устанавливает фактический уникальный идентификатор. Такое поведение не позволяет мне назначать уникальный идентификатор для данных, которые я кэширую на устройстве, и поэтому я не могу знать, есть ли более новая версия на сервере, которую я должен загрузить.

Я нашел обходной путь, который я считаю не лучшим решением - я использую поле cTag файла. В документации говорится, что cTag:

eTag для содержимого элемента. Этот eTag не изменяется, если изменяются только метаданные. Примечание. Это свойство не возвращается, если элемент является папкой. Только для чтения.

Использование cTag в качестве уникального идентификатора для версии current позволяет мне обнаружить, что была загружена новая версия.

Причина, по которой я не доволен его использованием, заключается в том, что cTag доступен только для текущей версии. С другой стороны, уникальный идентификатор доступен только для не текущих версий. После загрузки новой версии и присвоения идентификатора предыдущей текущей версии у меня нет возможности узнать, что я уже скачал эту версию и пометил ее предыдущей cTag.

Есть ли способ получить непротиворечивый уникальный идентификатор для версии файла? Например, если cTag можно каким-то образом сделать доступным в списке версий API? Или, в качестве альтернативы, получить уникальный идентификатор текущей версии?

Спасибо!

...