【问题标题】:Django Media File deployment - change in file locationDjango Media File 部署 - 更改文件位置
【发布时间】:2017-04-26 11:46:02
【问题描述】:

我有一个在 Digitalocean 中运行的 Web 服务器。我们处于需要上传客户图像(媒体文件)的情况。现在,就低估情况而言,在以下情况下:

class Car(models.Model):
    ...
    photo = models.ImageField(storage=fs)

照片字段会存储文件的url,对吧?

现在我们可能会在不久的将来迁移到亚马逊(使用 S3 作为存储系统)。模型字段值会改变吗?

那么,您如何建议我们处理更改(因为那时我们将拥有两台服务器,一台用于 django 的 EC2 和用于媒体和静态文件的 S3)?

【问题讨论】:

    标签: django amazon-s3 storage digital-ocean


    【解决方案1】:

    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 上存储文件的详细指南。

    【讨论】:

    • 嘿@hybor 非常感谢您的回复。虽然我有一些通过 S3 提供静态文件的想法,但您确实提供了帮助。谢谢。但我的主要疑问是:目前我的静态文件和 django 项目是从同一台服务器提供的。一旦我更改它,它会影响模型字段吗? (如问题中所说?)。谢谢
    • 不,它不会影响模型字段。 storage=fs 会将您的文件存储在 /media/photos 文件夹下(我个人在 ImageFields 中使用 upload_to='model_name/images' 选项)。 collectstatic 和发送 S3 也将处理您的情况。
    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多