我正在使用Digitalocean运行Web服务器。我们处于需要上传客户图像(媒体文件)的情况。现在,就下面的情况而言,在以下情况中:
class Car(models.Model):
...
photo = models.ImageField(storage=fs)
照片字段会存储文件的网址,对吗?
现在我们可能会在不久的将来转向亚马逊(使用S3作为存储系统)。模型字段值会改变吗?
那么,您如何建议我们处理这一变化(因为我们将有两个服务器,一个用于django的EC2和用于媒体和静态文件的S3)?
答案 0 :(得分:0)
您可以在collectstatic
之后部署期间将静态和媒体文件上传到S3。如果是多台服务器,您只需要在一台服务器上运行collectstatic
,然后您就可以从S3为多台服务器访问相同的内容。
如果你看一下https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/,就会有关于如何在S3上存储文件的详细指南。