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

Posted

技术标签:

【中文标题】如何在 App Engine 中从 Google Storage 读取 zip 文件?【英文标题】:How can I read zip files from Google Storage in App Engine? 【发布时间】:2011-11-16 12:46:54 【问题描述】:

应用程序创建一个 zip 文件并将其存储到 Google 存储中。我在负责抓取 zip 文件提取内容等的网络服务器端工作。网络服务是用 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】:

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

【讨论】:

以上是关于如何在 App Engine 中从 Google Storage 读取 zip 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Cloud App Engine 上使用 PubSub 创建订阅者,该订阅者通过 Publisher 从 Google Cloud App Engine Flex 收听消息?

如何在 Google App Engine app.yaml 中处理尾部斜线

如何在 Google Cloud Functions 和 Google App Engine 之间进行选择?

如何在 Google App Engine 中创建版本号

如何在 Google App Engine 中执行全文搜索?

如何在 Django/Google App Engine 中制作日志颜色?