Допустим, у пользователя уже есть файлы, синхронизированные (через мое приложение) с его папкой Drive.Теперь они входят в мое приложение на втором устройстве и готовы для синхронизации файлов в первый раз.Использую ли я API-интерфейс Changes для начального процесса синхронизации?
Я спрашиваю, потому что для использования API-интерфейса Changes требуется StartPageToken, который требует, чтобы была предыдущая операция синхронизации.Что ж, у пользователя нет никакого способа уже иметь StartPageToken, если они впервые синхронизируют данные на устройстве.
Документация Google - это шутка.Они не должны оставлять за нами право читать между строк и просто выяснять это.Я уверен, что смогу приготовить что-то, что будет «работать», но как я узнаю, что это «подходящий» и ЭФФЕКТИВНЫЙ способ справиться с этим?
public async Task<AccessResult> GetChangesAsync(CancellationToken cancellationToken, string fields = "*")
{
ChangesResource.ListRequest listRequest = new ChangesResource.ListRequest(DriveService, startPageToken)
{
Spaces = Folder_appDataFolder,
Fields = fields + ", nextPageToken",
IncludeRemoved = true,
PageSize = 20
};
ChangeList changeList = await listRequest.ExecuteAsync(cancellationToken);
}
Вот яВы хотите начать синхронизацию пользователя в первый раз, поэтому маркер страницы для этого даже не имеет смысла, поскольку во время первой синхронизации ваша цель - получить все данные пользователей.С этого момента вы хотите синхронизировать только дальнейшие изменения.
Один из подходов, о котором я подумал, - это просто использовать ListRequest для вывода списка всех данных пользователей и начать загрузку файлов таким образом.Затем я могу просто запросить токен начальной страницы и сохранить его для использования во время попыток синхронизации, которые происходят позже ...
... Но что, если при первоначальной загрузке файлов пользователя (например, 800 файлов)) происходит ошибка, и ListRequest завершается ошибкой в файле 423?Поскольку я не могу получить StartPageToken в середине ListRequest для хранения в случае чрезвычайной ситуации, нужно ли начинать все сначала и снова загружать все 800 файлов вместо того, чтобы начинать с файла 423?