Учетные данные GCS refre sh для объекта хранения - PullRequest
0 голосов
/ 30 марта 2020

У меня есть служба в Google Cloud Compute, которая является частью мультитенантного приложения. Мы используем хранилище для обновления sh учетных данных каждые 4-5 часов через временную учетную запись в этом месте: /dev/shm/gcp_credentials.json.

При создании объекта хранения GCS я хочу выяснить, что является лучшим способ обновления этих учетных данных.

Я заметил, что есть метод для создания объекта хранилища, который позволяет мне передавать объект учетных данных. Я использую google-auth-credentials-library:0.16.2 У объекта учетных данных есть метод credentials.refresh() согласно справке do c: https://javadoc.io/doc/com.google.auth/google-auth-library-credentials/0.16.2/com/google/auth/Credentials.html, а для объекта хранения я использую google-cloud-storage:1.83.0

Storage refreshStorage() {
    return StorageOptions.newBuilder().setCredentials(credentials)
        .setProjectId("project_id").build().getService();
}

Что я хочу понять, так это то, что, если я позвоню credentials.refresh(), это будет гарантировать, что когда я вызываю storage.create(blobInfo, records);, он повторно аутентифицируется, или мне придется вызывать вышеупомянутый метод, чтобы передать новое хранилище? обновлен объект с учетными данными?

1 Ответ

1 голос
/ 03 апреля 2020

credentials.refresh() удалит кэшированное состояние ваших учетных данных, поэтому правильным процессом будет:

обновление ваших учетных данных> вызов credentials.refre sh (), чтобы избежать ошибок при чтении учетные данные кэша> работа с хранилищем

...