如何从App Engine中的Google Storage读取zip文件?

时间:2011-11-16 12:46:55

标签: python google-app-engine zip google-cloud-storage

应用程序会创建一个zip文件并将其存储到Google Storage。我正在Web服务器端工作,负责抓取zip文件提取内容等.Web服务是用Python App Engine编写的。到目前为止,我已经设置了凭据,并按照教程我可以列出存储桶内容。虽然我能够读取元数据和文件信息,但我无法将内容转到zip文件模块。关注this 指南我最终在那个无效的地方结束了:

uri = boto.storage_uri(BUCKET_NAME, GOOGLE_STORAGE)
objs = uri.get_bucket()
files = []
for obj in objs:
  object_contents = StringIO.StringIO()
  if obj.get_key():
    obj.get_file(object_contents)
    my_zip = zipfile.ZipFile(object_contents)
    object_contents.close()
    files.append(my_zip)
print len(files)  

我得到:BadZipfile: File is not a zip file

如何正确阅读内容?

1 个答案:

答案 0 :(得分:2)

现在有an API可让您直接操作Google Storage中的对象。使用它,您可以获得zipfile的类文件对象,并将其传递给zipfile模块。