views:

49

answers:

1

Hi there,

I'm banging my head against the wall with this one:

What I want to do is store a file that is returned from an API in the data store as a blob.

Here is the code that I use on my local machine (which of course works due to an existing file system):

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

Since I cannot write to a file on App Engine I tried several ways to store the response, without success. Any hints on how to do this? I was trying to do it with StringIO and managed to store the response but then weren't able to store it as a blob in the data store.

Thanks, Chris

+2  A: 

Found the error. Here is how it looks like right now (simplified).

    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)

I was trying to save the output without calling "getvalue()", that was the problem. Perhaps this is of use to someone in the future :)

herrherr