Сохраните сгенерированный файл 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/")