Я создал пользователя с доступом к определенному диску Google. Через приложение Spring Boot (jhipster) я подключаюсь к этому пользователю к G-Drive. Моя проблема - это аутентификация. Я использую этот код для аутентификации (как в примерах, которые Google предоставляет для веб-приложений):
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(".")))
.setApprovalPrompt("auto")
.build();
return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
При первом запуске приложение пытается найти файл StoredCredential. Если это не так, Google предоставляет пользователю ссылку, чтобы открыть ее в своем браузере:
Откройте в браузере следующий адрес:
https://accounts.google.com/o/oauth2/auth? ...
Поскольку я не могу сделать это из экземпляра EC2, я делаю это на своем локальном компьютере и загружаю файл в ожидаемое место с сервера. Наконец, перезапуск заставляет веб-сервер работать некоторое время, пока не истечет срок действия токена. После этого мне нужно проделать ту же процедуру.
Очевидно, я здесь что-то не так делаю. Как правильно веб-приложение подключается к G-Drive каждые несколько минут?
ОБНОВЛЕНИЕ: я нашел (https://cloud.google.com/storage/docs/authentication), что я должен использовать учетную запись службы, как предлагает ссылка для облачного хранилища. К сожалению, я загрузил json для учетной записи службы, установил переменную env, но похоже, что это не работает для api google drive rest (v3).
Спасибо