Mein aktuelles Projekt erfordert, dass ich hochgeladene Dateien (meist Bilder) für die Vorverarbeitung, bevor ich sie speichern.Bild vorübergehend mit io für die Vorverarbeitung ohne Verwendung von Datenträger Ressourcen speichern
Bis jetzt war meine Hauptmethode, auf Amazon s3 zu laden, dann herunterzuladen und an ihnen zu arbeiten.
Dies ist nicht ideal, da ich das hochgeladene Bild nicht wirklich speichern muss, sondern das Endprodukt.
Ist es möglich, das io-Modul zu verwenden, um die Django InMemoryUploadedFile als Bytes zu speichern und irgendwie ein tatsächliches Bild von ihm zurückzugeben? Meine bisherigen Versuche sind kläglich gescheitert. Vielleicht verstehe ich das io Modul nicht unbedingt gut.
def temp_file(f):
"""
CREATES TEMP FILE THAT DOES NOT GET UPLOADED
f is the InMemoryUploadedFile of image
"""
buffer = io.BytesIO()
buffer.write(f.read())
image = buffer.read()
buffer.close()
img = Image.open(image)
return img
Können Sie uns mehr über Ihre Versuche (einschließlich Code) und was ist bisher gescheitert? Es ist einfacher, anhand eines Code-Snippets zu antworten als nur eine formale Frage. 'io' wird möglicherweise nicht benötigt, wenn Sie' ContentFile' verwenden. – raphv
Ich werde viel mit Bildern und PDFs zu tun haben. Es gibt hier ein Beispiel (unter "Komplexe PDFs"), wie man mit komplexen PDF-Dateien in der django-Dokumentation umgehen kann: https://docs.djangoproject.com/de/1.9/howto/outputting-pdf/. Ich versuche, das gleiche Beispiel für Bilder zu replizieren. – Edwinner