Сохраните сгенерированный файл Django в AWS S3

У меня есть приложение, которое генерирует файл .png. С помощью функции de ниже (generateFile()) два изображения вставляются вместе и сохраняются в соответствующем месте.

В настоящее время все это работает локально. Однако я хочу использовать AWS S3 для размещения моих файлов. Мое приложение настроено таким образом, что изображения, загруженные в моей модели imgUpload(models.Model), сохраняются на AWS S3. Это тоже работает

Теперь я хочу сохранить 'img1' не как показано ниже локально, а на сервере. Идея была в том, чтобы передать его в модель. Это, к сожалению, не работает.

Сообщение об ошибке, которое я получаю, следующее: _committed

В связи с этой проблемой возникает много вопросов, на которые я не знаю, как ответить:

  • Есть ли способ сохранить файл с помощью .save() и указанием пути AWS S3 напрямую без использования модели?
  • Какого рода объектом является img1 файл перед его сохранением?
  • Существует ли он уже, или он будет создан только при выполнении функции .save()?

view.py

   def generateFile(key):
       img1 = Image.open(f'{current_path}/media/file.png')
       img2 = Image.open(f'{current_path}/media/watermark.png')
       img1.paste(img2, (150, 250), img2)
       img1.save(f'{current_path}/media/file-{key}.png')
    
       try:
           imgUploader = imgUpload(image=img1)
           imgUploader.save()
       except Exception as e:
           print(e)

models.py

    class imgUpload(models.Model):
        image = models.ImageField(null=True, blank=True, upload_to="images/")
Вернуться на верх