use*_*278 13 google-app-engine google-cloud-storage
我有一个应用引擎项目,我想访问我的谷歌云存储默认存储桶.获取Credential对象的第一步失败,在实时实例上执行以下操作:
Credential creds = GoogleCredential.getApplicationDefault();
Run Code Online (Sandbox Code Playgroud)
我收到的异常消息:
"应用程序默认凭据不可用.如果在Google Compute Engine中运行,则可以使用它们.否则,必须定义环境变量GOOGLE_APPLICATION_CREDENTIALS,指向定义凭据的文件.请参阅https://developers.google.com/accounts/docs/application-default-credentials有关详细信息."
这里的文档说生产应用程序引擎项目应该可以访问默认凭据吗?:
https://developers.google.com/identity/protocols/application-default-credentials
"3.如果您在Google App Engine生产中运行,将使用与该应用程序关联的内置服务帐户."
我缺少一些设置吗?
我的app引擎版本(gradle):
com.google.appengine:appengine-java-sdk:1.9.18
Run Code Online (Sandbox Code Playgroud)
和谷歌云存储库版本:
com.google.apis:google-api-services-storage:v1-rev35-1.20.0
Run Code Online (Sandbox Code Playgroud)
谢谢
转到Google Developers Console - >凭据并创建默认服务帐户.json密钥.当你这样做时,它会下载一个像default-account-credentials.json你这样的文件.然后,您必须将该文件放在app引擎项目中的某个位置.您致电时将引用此文件
Credential creds = GoogleCredential.getApplicationDefault();
但是,在此之前,您必须将环境变量设置为该文件位置.为此,请打开您的appengine-web.xml文件并将此行放入其中:
<env-variables>
<env-var name="GOOGLE_APPLICATION_CREDENTIALS"
value="WEB-INF/default-account-credentials.json" />
</env-variables>
Run Code Online (Sandbox Code Playgroud)
您刚下载的creds文件value的路径在哪里.json.
现在它会起作用.(你的gradle进口很好)
| 归档时间: |
|
| 查看次数: |
9923 次 |
| 最近记录: |