Java ApiProxy$ApplicationException:ApplicationError:8在google云存储中创建API访问后

Java ApiProxy$ApplicationException:ApplicationError:8在google云存储中创建API访问后,java,google-app-engine,google-cloud-storage,Java,Google App Engine,Google Cloud Storage,我已经创建了一个名为“可以编辑”的服务帐户来访问谷歌云存储。我使用了在for java中提供的示例应用程序,并将其部署在app engine中。当在浏览器中调用servlet时,我遇到如下错误 Uncaught exception from servlet java.io.IOException at com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImpl.java:615)

我已经创建了一个名为“可以编辑”的服务帐户来访问谷歌云存储。我使用了在for java中提供的示例应用程序,并将其部署在app engine中。当在浏览器中调用servlet时,我遇到如下错误

Uncaught exception from servlet
java.io.IOException
    at com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImpl.java:615)
    at com.google.appengine.api.files.FileServiceImpl.makeSyncCall(FileServiceImpl.java:588)
    at com.google.appengine.api.files.FileServiceImpl.create(FileServiceImpl.java:506)
    at com.google.appengine.api.files.FileServiceImpl.createNewGSFile(FileServiceImpl.java:153)
    at com.audioapp.ListpeopleServlet.doGet(ListpeopleServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    at java.lang.Thread.run(Thread.java:679)

Caused by: com.google.apphosting.api.ApiProxy$ApplicationException: ApplicationError: 8: 
    at java.lang.Thread.getStackTrace(Thread.java:1495)
    at com.google.apphosting.runtime.ApiProxyImpl.doSyncCall(ApiProxyImpl.java:240)
    at com.google.apphosting.runtime.ApiProxyImpl.access$000(ApiProxyImpl.java:66)
    at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:183)
    at com.google.apphosting.runtime.ApiProxyImpl$1.run(ApiProxyImpl.java:180)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.apphosting.runtime.ApiProxyImpl.makeSyncCall(ApiProxyImpl.java:180)
    at com.google.apphosting.runtime.ApiProxyImpl.makeSyncCall(ApiProxyImpl.java:66)
    at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:107)
    at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:56)
    at com.google.appengine.api.files.FileServiceImpl.makeSyncCall(FileServiceImpl.java:584)
谁能建议我解决这个问题


提前谢谢

您是否按照5下文档[1]>中的说明授予访问权限。为您的bucket或对象授予权限。

您使用哪个SDK版本?可能是旧SDK版本导致了此异常


[1]

是的,我已经创建了服务帐户名并授予了“可以编辑”选项。我也在使用AppEngine版本1.7.3。你能简单描述一下在第五步中该做什么吗。我使用api访问选项卡提供的oAuth访问创建了服务帐户名。我遗漏了什么吗。如果您添加了您的服务帐户(看起来像PROJECTNAME@appspot.gserviceaccount.com)作为谷歌API的团队成员,访问应该是有效的。请在出现异常的地方发布代码:com.audioapp.ListpeopleServlet.doGet(ListpeopleServlet.java:36)我得到了服务帐户,正如你所说的,我需要在我的应用程序中的任何地方提供这个帐户id吗;这是我出错的地方。正如我在上面完整的示例应用程序中所说的,我使用的代码与dappenginefile writableFile=fileService.openWriteChannel(writableFile,lock)相同;不可能:),因为openWriteChannel不返回AppEngineFile。您是否按照示例的bucket_NAME变量中的定义创建了bucket?如果没有,您可以在Google云存储->在线浏览器下创建它。