Какой токен страницы следует использовать при первом внесении в список изменений папки Drive (через ChangeResource)? - PullRequest
0 голосов
/ 13 ноября 2018

Допустим, у пользователя уже есть файлы, синхронизированные (через мое приложение) с его папкой 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?

1 Ответ

0 голосов
/ 13 ноября 2018

Когда вы делаете changes.list в первый раз, вам следует вызвать getStartPageToken , чтобы получить маркер страницы, который вы можете использовать для получения списка изменений. Если это первый раз, то никаких изменений, конечно, не будет.

Если пользователь использует ваше приложение более чем с одного устройства, то логичным шагом будет сохранение маркера страницы в центральном месте, когда пользователь впервые запустил приложение при первом обмане. Это позволит вам использовать этот же токен на всех дополнительных устройствах, которые пользователь может использовать.

Это может быть на вашем собственном сервере или даже в папке пользователей с данными приложения на диске

Я не совсем пользователь, что делает ваше приложение, но я действительно не думаю, что вы должны загружать файлы пользователей, если они не пытаются получить к нему доступ. Я не могу придумать причину, по которой ваше приложение может сохранить зеркальное отображение учетной записи диска пользователя. Получайте доступ к нужным им данным, когда им это нужно. Тебе не нужно все. Опять же, я не знаю точно, что делает ваше приложение.

...