【发布时间】:2015-11-16 06:45:05
【问题描述】:
我正在尝试从文件系统加载一个 .p12 文件(Google 证书),以便对我的 Google Cloud Storage 应用程序进行身份验证。
Credential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("157264856793-sl14obknv58bi73m2co92oabrara9l8c@developer.gserviceaccount.com")
.setServiceAccountPrivateKeyFromP12File(resourceLoader.getResource("classpath:google-auth.p12").getFile())
.setServiceAccountScopes(scopes).build();
不幸的是,在尝试部署应用程序(作为 JAR 到 Heroku 上)时,我收到一个错误,提示我无法从 JAR 加载“文件”。
java.io.FileNotFoundException: class path resource [google-auth.p12] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/app/build/libs/Nitro.jar!/google-auth.p12
有人建议我将文件加载为 inputstream 而不是文件,但 GoogleCredential 似乎没有合适的方法,只有:
setServiceAccountPrivateKeyFromP12File(File file) 方法。
建议。
【问题讨论】:
-
您可以使用this answer 创建一个标准的Java
PrivateKey对象,然后您可以使用接受PrivateKey的GoogleCredential.Builder.setServiceAccountPrivateKey()方法。
标签: java spring heroku jar google-cloud-storage