防止 Django 中的媒体文件夹被新更新覆盖



我有一个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,最好在我从模型表单上传文件时将其保存到我的数据库中。

感谢所有反馈。

请参阅EB文档,了解设计注意事项:

Elastic Beanstalk 应用程序在没有持久本地存储的 Amazon EC2 实例上运行。当 Amazon EC2 实例终止时,不会保存本地文件系统,并且新的 Amazon EC2 实例从默认文件系统开始。

所以,你不能做你所要求的。必须将文件上载到永久性存储系统;S3 是显而易见的选择。

最新更新