App Engine - 将数据存储中API的响应保存为文件(blob)

时间:2010-05-29 17:11:16

标签: python google-app-engine api google-cloud-datastore

我正用这个把头撞在墙上:

我想要做的是将从数据存储中的API返回的文件存储为blob。

以下是我在本地计算机上使用的代码(当然,由于现有的文件系统,它可以正常工作):

client.convertHtml(html, open('html.pdf', 'wb'))

由于我无法写入App Engine上的文件,我尝试了几种方法来存储响应,但没有成功。 关于如何做到这一点的任何提示?我试图用StringIO来做,并设法存储响应,但后来无法将其作为blob存储在数据存储中。

谢谢, 克里斯

1 个答案:

答案 0 :(得分:2)

发现错误。以下是它现在的样子(简化)。

    output = StringIO.StringIO()

    try:
        client.convertURI("example.com", output)
        Report.pdf = db.Blob(output.getvalue())
        Report.put()  
    except pdfcrowd.Error, why:
        logging.error('PDF creation failed %s' % why)

我试图保存输出而不调用“getvalue()”,这就是问题所在。也许这对未来的某个人有用:)