Ich versuche, django_storages Paket zum Speichern von Bildern auf AWS S3 oder Digital Ocean Räumen zu verwenden.Django: Digitale Ozeanräume/AWS S3, wie man ein Bild mit django_storages erstellt
Wenn ich das normale Image-Upload mit einem Formular verwende, wird das Image erfolgreich auf den Server hochgeladen.
Aber wenn ich versuche, ein Bild manuell zu erstellen und dann in S3 oder Digital Ocean Space-Buckets schreiben, wird das Bild nicht ordnungsgemäß erstellt.
Es folgt der Code, den ich auf Shell ausgeführt haben und versucht, eine Menge:
from PIL import Image, ImageDraw, ImageFont
img = Image.new('RGB', (500,500), (255,255,255))
d = ImageDraw.Draw(img)
d.text((10,10), "Hello", font=ImageFont.truetype("tahomabd"), fill='BLACK')
d.text((10,60), "World", font=ImageFont.truetype("tahomabd"), fill='BLACK')
from django.core.files.storage import default_storage as storage
JPEG_PATH = "pathtofile.jpeg"
storage.exists(JPEG_PATH)
storage.delete(JPEG_PATH)
JPEG_STORAGE = storage.open(JPEG_PATH, "w")
JPEG_STORAGE.write(img)
JPEG_STORAGE.close()
Der obige Code erzeugt auf dem Ablageort eine JPEG-Datei, aber es gibt einige Standard-Datei, die keinen Sinn macht. Bitte schlagen Sie vor, was das Problem mit dem Code ist.
'einige Standard-Datei'. Was meinst du damit? – Jason
Ich meinte, was auch immer ist die Größe und Inhalt des Bildes, es ist eine Standarddatei mit den gleichen Abmessungen jedes Mal mit der gleichen Größe von 58kb oder so erstellt. Zum Beispiel versuche ich ein Bild von 500 x 500 px zu erstellen, aber ich erstelle dieselbe Standarddatei. Wenn ich 1000x1000 nochmal gleich versuche. Es kann also sein, dass ich nicht verstehe, wie man eine Bilddatei speichert. –