Heroku上的媒体文件

时间:2016-04-14 18:55:02

标签: django heroku

如果我在Heroku上托管一个小的Django网站并且我只使用一个dyno,那么它是否可以保存到该服务器上的媒体文件,或者我是否必须使用AWS S3存储来存储媒体文件?什么是媒体存储的其他替代方案?

2 个答案:

答案 0 :(得分:5)

不,将内容存储在Heroku文件系统上绝对不安全。即使你只有一个dyno,它仍然是短暂的,并且可以在任何时候被杀死;例如,当您推送新代码时。

答案 1 :(得分:4)

使用S3是可行的方法(替代方案是Azure和Google产品)。使用S3还有其他几个优点,主要是在不给小型服务器施加压力的情况下为文件提供服务的能力。

虽然您的网站很小,但dyno也非常小,因此如果使用正确,S3的一个主要优势是您可以拥有AWS S3基础架构的支持来为文件提供服务。通过“正确使用”,我的意思是您希望直接上传和维护文件到S3,因此您的服务器仅用于签署S3网址,但实际文件永远不会通过您的服务器。

检查https://devcenter.heroku.com/articles/s3-upload-pythonhttp://docs.fineuploader.com/quickstart/01-getting-started.html(如果您可以使用免费版本或支付小额许可费,我强烈推荐Fine-Uploader。)。

显然,您也可以使用django-storage-redux在django中实现S3媒体文件,但这意味着您的服务器将忙于上传文件。如果你的小型服务器没问题,那也可以。