Я пишу проект в Django, который имеет загруженные пользователем изображения, связанные с продуктами, поэтому моя модель продукта выглядит примерно так:
class Product(models.Model):
name = models.CharField(max_length=128)
description = models.CharField(max_length=255)
owner = models.ForeighKey(User)
image = models.ImageField()
Я хотел бы хранить изображения на Amazon S3, так какдовольно дешево и быстро.Я, как и другие, хотел бы избежать накладных расходов по загрузке файла на мой сервер, а затем на S3.Есть некоторый пример кода, объясняющий, как загрузить файл непосредственно в S3 из клиентского браузера.
Проблема, которую я вижу (и я пока не нашел решения) состоит в том, что у меня нет только изображения для загрузки.Мой объект (продукт) также имеет другие поля, такие как имя, описание и так далее.Все примеры, которые я видел, используют одну форму только для изображения.Я хотел бы иметь одну HTML-форму (с изображением, именем и т. Д.) Для пользователя, и как только пользователь нажмет «отправить», я смогу сохранить данные в amazon S3, а затем другую информацию (имя и т. Д.).on), в моей локальной базе данных.
В соответствии с изображением в http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingHTTPPOST.html, используя метод POST, можно отправлять данные с клиента на amazon S3 и мой веб-сервер.Теперь ясно, могут ли обе ситуации быть включены в одну и ту же страницу (одна и та же HTML-форма).
Согласно Amazon Docs, можно загрузить файл и установить ULR перенаправления, когда загрузка будет успешной.
1) Можно ли загрузить изображение на URL-адрес, а затем перенаправить его на мой веб-сервер для хранения остальной информации?Сохраняет ли перенаправление данные POST (имя, описание и т. Д.)?Как я могу получить доступ к имени файла, хранящегося в S3?
2) Есть ли другой способ достижения моей цели (кроме моего варианта № 1)?
Заранее спасибо