3 Stimmen

App Engine - Antwort von einer API im Datenspeicher als Datei (Blob) speichern

Ich schlage meinen Kopf gegen die Wand mit diesem Thema:

Ich möchte eine Datei, die von einer API zurückgegeben wird, im Datenspeicher als Blob speichern.

Hier ist der Code, den ich auf meinem lokalen Rechner verwende (der natürlich aufgrund eines vorhandenen Dateisystems funktioniert):

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

Da ich auf App Engine nicht in eine Datei schreiben kann, habe ich verschiedene Möglichkeiten ausprobiert, die Antwort zu speichern - ohne Erfolg. Irgendwelche Tipps, wie man das machen kann? Ich habe versucht, es mit StringIO zu tun und es geschafft, die Antwort zu speichern, aber dann waren nicht in der Lage, es als ein Blob in den Datenspeicher zu speichern.

Danke, Chris

2voto

herrherr Punkte 698

Ich habe den Fehler gefunden. So sieht es im Moment aus (vereinfacht).

    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)

Ich habe versucht, die Ausgabe zu speichern, ohne "getvalue()" aufzurufen, das war das Problem. Vielleicht ist dies für jemanden in der Zukunft von Nutzen :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X