2

我正在使用 Google Cloud DLP Java 库。我已经按照此处的说明设置了我的服务凭据并将它们保存在 JSON 文件中:

https://cloud.google.com/dlp/docs/libraries

该文档指出,进行身份验证的首选方法是将环境变量设置GOOGLE_APPLICATION_CREDENTIALS为指向包含凭据的 JSON 文件的路径。在我的情况下,这并不是那么实用。我有一个 Spring Boot 应用程序,其中所有代码(以及带有凭据的 JSON 文件)都嵌入在“胖 jar”中。我可以轻松地使用类加载器来获取资源的 InputStream,但我不能真正从环境变量的 jar 文件中指向它。从正在运行的 JVM 中创建环境变量而不求助于使用反射等技巧也是不切实际的。

其他一些 Google Cloud 库具有可以使用GoogleCredentials对象初始化的服务类,但我还没有找到使用 DLP 库执行此操作的方法。有没有办法将 a 传递GoogleCredentialsDlpServiceClient

4

1 回答 1

4

经过一番谷歌搜索后,我最终弄清楚了。这很好用:

Resource r = new ClassPathResource("/path-to-my-cred-file.json");

GoogleCredentials creds = GoogleCredentials.fromStream(r.getInputStream());    

DlpServiceSettings settings = DlpServiceSettings.newBuilder()
                                    .setCredentialsProvider(FixedCredentialsProvider
                                    .create(creds))
                                    .build();

try (DlpServiceClient dlpServiceClient = DlpServiceClient.create(settings)) {
      ///... other stuff here ...
}
于 2018-02-14T00:56:18.037 回答