【问题标题】:How can I return a blob (bytestring) from PiCloud to Google Appengine?如何将 Blob(字节串)从 PiCloud 返回到 Google Appengine?
【发布时间】:2012-01-30 00:47:07
【问题描述】:

我正在使用 PiCloud REST API 从 Google Appengine (GAE) 运行后台任务。我的 PiCloud 函数向 GAE 返回一个字节字符串,如下所示:

结果 = numpy.asarray(arr,numpy.float32).tostring()
返回 pickle.dumps(bz2.compress(result))

这可以正常工作,除了当字符串“result”很大(24MB 是典型值)时,即使使用 bz2 压缩,酸洗会使返回的 blob 的大小超过 GAE URLfetch 响应的 32MB 限制。我试过使用 json.dumps() 但它不起作用。有没有办法返回不扩展的 blob?

【问题讨论】:

  • 我应该更仔细地阅读 REST API 文档。解决方案是使用 out_encoding = 'raw' cloud.files.publish(function, 'function', out_encoding = 'raw') 发布 PiCloud 函数,然后将结果作为没有 JSON 标头但具有 Content-Type 的字符串返回:应用程序/八位字节流

标签: python json google-app-engine rest pickle


【解决方案1】:

恐怕您必须找到一种方法将其分解为单独的请求。问题不在于 PiCloud。只是GAE有它的硬性限制。

您可以使用cloud.files 将文件存储在服务器上。然后分块检索。

【讨论】:

  • 谢谢肯。 GAE 上的 32MB URLFfetch 响应配额对我来说还可以。我的问题是如何发送二进制数据,我忽略了 files.publish() 的 out_encoding 关键字,见上文。
猜你喜欢
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多