我有一个包含Image Field的Django模型,还有一个使用包含所有图像的模型实例的应用程序。我现在遇到的问题是我的数据和img本地链接位于我的AWS RDS数据库上,而包含模型图像的媒体文件夹却不在。因此,每次我部署新版本的应用程序时(我正在使用Beanstalk进行部署),我的媒体文件夹都会被清除干净,因此所有图像链接都会消失。
下面是我的模特:
class Item(models.Model):
# Fields
name = models.CharField(max_length=30, help_text="Enter item name")
description = models.TextField(help_text='Enter a short description')
image = models.ImageField(help_text='Upload item image', upload_to='image/item/',
default='image/demo.jpg')
# Methods
def __str__(self):
return str(self.name)
def get_absolute_url(self):
return reverse('model-detail-view', args=[str(self.id)])
然后我用serve
从Django检索图像。
url(r'^resource/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
现在,解决此问题的最佳方法是什么?我不想将图像上传到另一台服务器,然后再链接回Django,最好是在从模型表单上传文件后将其保存到数据库中。
感谢所有反馈。
答案 0 :(得分:0)
请参阅EB documentation on design considerations:
Elastic Beanstalk应用程序在没有持久本地存储的Amazon EC2实例上运行。当Amazon EC2实例终止时,不会保存本地文件系统,并且新的Amazon EC2实例将从默认文件系统开始。
因此,您无法执行所要求的操作。您必须将文件上传到永久性存储系统; S3是显而易见的选择。