我刚刚开始开发GAE Web应用程序。我想获得一堆谷歌云存储列表。我从网站上找到了一些代码。
我发现网上有3种方式。
使用Google存储空间API
使用Json liblary
但是这个示例需要为bucket配置域验证。
使用python
我们现有的应用程序是由gae for Java开发的。我不认为这种python方式可以包含在Java应用程序中。
然后我想修复No1方式。
显示凭据错误。现在,桶被授权给所有人(所有经过身份验证的用户)。我想我需要了解凭证的工作原理。我已经阅读了关于0Auth2的谷歌开发者页面。我可以找到一个bigquery的样本。如果你有一个关于凭证和谷歌云存储的样本或网站,那将非常有用。
错误;
Error: com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential.(Ljava/util/Collection;)V
我在API控制台做了什么:
创建客户端ID(Web应用程序,服务帐户,每个已安装的应用程序)
创建简单API访问(新服务器密钥,新浏览器密钥)
我在本地机器上做了什么;
我的发展环境
eclipse 3.6 helios(日语语言包)
gae java for eclipse
gae 1.8.0
java 1.6.31
google storage API
google客户端库
他人(Tomcat中,行家)
windows 7英语日语语言包
答案 0 :(得分:1)
您的第一次尝试(数字1)是专注于让它发挥作用的最佳方式。 Marc提供的代码示例使用内置的App Engine App Identity模块为其他Google API安全地识别App Engine应用程序:https://developers.google.com/appengine/docs/java/appidentity/#Asserting_Identity_to_Google_APIs
然而,有两个问题需要检查:
App Identity模块无法使用本地devserver。在本地运行时,本地服务器无法安全地将自己标识为Google生产API - 因此您应该查看使用带有可下载密钥的服务帐户进行本地测试,或者最简单的选项(以及我建议的用途)现在),是部署到生产App Engine环境进行测试。
确保将App Engine服务帐户电子邮件地址添加到您尝试访问的Google云端存储分区的访问控制列表中。通过管理控制台(适用于您的App Engine应用)查看此电子邮件地址 - >应用程序设置:
服务帐户名称: xxxxxxx@appspot.gserviceaccount.com
要将其添加到Google云端存储访问控制列表,请将其添加到拥有Google云端存储分区的项目的项目团队,或者,如果您未使用默认访问控制设置,请直接添加到ACL: https://developers.google.com/storage/docs/accesscontrol
具有可下载密钥的服务帐户 - 如果您无法在生产App Engine环境中进行测试,请将其用于本地测试: https://developers.google.com/accounts/docs/OAuth2ServiceAccount