昨天这个代码在本地服务器和生产服务器上运行良好:
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>")
Run Code Online (Sandbox Code Playgroud)
从昨天到今天,我已升级GAE启动器并更改了结算选项(我使用的是免费试用版,现在是付费帐户)(不确定是否有任何操作,只是为了提供额外信息)
但今天代码停止在本地工作(在生产中工作正常)
这是错误日志的开头
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"
Run Code Online (Sandbox Code Playgroud)
警告显示了一个存储桶对象,但是一旦我尝试在列表中进行迭代,我就会在身份服务上获得异常.
什么是hapening?似乎我需要授权本地devserver gcs模型,但我不知道如何.
请记住,这只发生在devserver中,而不是生产中.
谢谢你的帮助
我试图在 GAE 中读取存储在我的一个存储桶中的文件。
该文件存储在公共存储桶中
我试过:
archivo=cloudstorage.open('/bucket/workbook.xlsx')
wb = xlrd.open_workbook(filename=archivo)
Run Code Online (Sandbox Code Playgroud)
但是 xlrd 希望自己打开文件,所以我得到了一个 TypeError
类型错误:强制转换为 Unicode:需要字符串或缓冲区,已找到 ReadBuffer
有没有办法给 xlrd 一个打开的文件,这样我就可以读取文件而不必更改 xlrd.py
python google-app-engine xlrd python-2.7 google-cloud-storage