Ответ 1
Для других, которые ищут ответ. Чтобы использовать учетные данные по умолчанию для приложения, вам нужно выполнить несколько шагов... Вы можете выполнить следующие шаги или посмотреть ссылку .
- Прежде всего: установите Google Cloud Storage SDK
- Убедитесь, что вы можете запускать команды из SDK. Если у вас нет установленного python, вам нужно установить python 2.7 или выше, а также pyopenssl...
- Вам необходимо пройти аутентификацию с помощью SDK, запустив gcloud auth activate-service-account [Email учетной записи службы] --key-fil e [.p12 file] (Изменить значения в квадратных скобках). Когда вы запустите это, вы получите сообщение о том, что вы активировали свою учетную запись службы
- Вам необходимо установить переменные среды из SDK, установив GOOGLE_APPLICATION_CREDENTIALS к пути JSON к секретному (тот, который загружен из учетной записи службы, созданной с консоли разработчика) CLOUDSDK_PYTHON_SITEPACKAGES - 1, а также настройка проекта
Команды для настройки системных переменных...
set GOOGLE_APPLICATION_CREDENTIALS "secret.json path" set CLOUDSDK_PYTHON_SITEPACKAGES 1 gcloud config set project "your project name"
После аутентификации и авторизации вы можете начать использовать учетные данные по умолчанию для приложений, учитывая, что вы правильно настроили среду.
Когда вы успешно настроите свою среду, вы сможете аутентифицироваться и получать учетные данные по умолчанию только с помощью
GoogleCredential credential = GoogleCredential.getApplicationDefault(); if (credential.createScopedRequired()) { credential = credential.createScoped(StorageScopes.all()); } HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); storageService = new Storage.Builder(httpTransport, jsonFactory, credential) .setApplicationName(applicationName).build();
И используя HTTP GET для получения объектов из вашего хранилища Google, то есть следующего типа
// Set up and execute a Google Cloud Storage request. String uri = "https://storage.googleapis.com/" + URLEncoder.encode("[your bucket name here]", "UTF-8") + "/" + googleStorageFileName + "/" + fileName; httpTransport = GoogleNetHttpTransport.newTrustedTransport(); HttpRequestFactory requestFactory = httpTransport.createRequestFactory( credential); GenericUrl url = new GenericUrl(uri); HttpRequest request = requestFactory.buildGetRequest(url); HttpResponse response = request.execute(); String content = response.parseAsString(); BufferedWriter writer = new BufferedWriter( new FileWriter( pathToSave + googleStorageFileName)); writer.write( content);