在GAE本地开发服务器中使用GCS


问题内容

昨天,此代码在本地和生产服务器中均正常运行:

import cloudstorage

def filelist(Handler):
    gs_bucket_name="/bucketname"
    list=cloudstorage.listbucket(gs_bucket_name)
    logging.warning(list)
    self.write(list)
    for e in list:
        self.write(e)
        self.write("<br>")

从昨天到今天,我已经升级了GAE
Launcher并更改了结算方式(我当时使用的是免费试用版,现在使用的是付费帐户)(不知道它是否有任何作用,而只是提供其他信息)

但是今天代码停止在本地工作(在生产中可以正常工作)

这是错误日志的开始

WARNING  2015-02-20 09:50:21,721 admin.py:106] <cloudstorage.cloudstorage_api._Bucket object at 0x10ac31e90>

ERROR    2015-02-20 09:50:21,729 api_server.py:221] Exception while handling service_name: "app_identity_service"
method: "GetAccessToken"
request: "\n7https://www.googleapis.com/auth/devstorage.full_control"
request_id: "WoMrXkOyfe"

该警告显示了一个存储桶对象,但是当我尝试在列表中进行迭代时,我立即获得了身份服务的异常。

发生什么事了?似乎我需要授权本地devserver gcs模型,但是我不确定如何。

请记住,这仅在devserver中发生,而不在生产中发生。

谢谢你的帮助


问题答案:

这是最新版本(1.9.18)的问题。
目前,在修复之前,您可以通过从此处下载安装程序并运行它来将其降级到1.9.17:https :
//storage.googleapis.com/appengine-
sdks/featured/GoogleAppEngineLauncher-1.9.17.dmg

按照下面的答案,1.9.18已对此进行了修补。如果您仍要安装1.9.17版本,请点击以下链接:https :
//storage.googleapis.com/appengine-
sdks/deprecated/1917/GoogleAppEngineLauncher-1.9.17.dmg