【发布时间】:2016-04-14 18:55:02
【问题描述】:
如果我在 Heroku 上托管一个小型 Django 网站并且我只使用一个测功机,那么在该服务器上上传媒体文件是否可以节省,或者我是否必须使用 AWS S3 存储来存储媒体文件?媒体存储还有哪些其他替代方案?
【问题讨论】:
如果我在 Heroku 上托管一个小型 Django 网站并且我只使用一个测功机,那么在该服务器上上传媒体文件是否可以节省,或者我是否必须使用 AWS S3 存储来存储媒体文件?媒体存储还有哪些其他替代方案?
【问题讨论】:
不,将内容存储在 Heroku 文件系统上是绝对不安全的。即使您只有一个测功机,它仍然是短暂的,随时可能被杀死;例如当你推送新代码时。
【讨论】:
使用 S3 是可行的方法(替代方案是 Azure 和 Google 产品)。使用 S3 还有其他几个优点,主要是能够在不给小型服务器带来压力的情况下提供文件服务。
虽然您的站点很小,但测功机也非常小,因此如果使用得当,S3 的一个主要优势是您可以获得 AWS S3 基础设施的支持来为文件提供服务。通过“正确使用”,我的意思是您希望直接向/从 S3 上传和服务文件,因此您的服务器仅用于签署 S3 url,但实际文件永远不会通过您的服务器。
检查https://devcenter.heroku.com/articles/s3-upload-python 和http://docs.fineuploader.com/quickstart/01-getting-started.html(如果您可以使用免费版本或支付少量许可费用,我强烈推荐Fine-Uploader。)。
显然,您也可以使用 django-storage-redux 在 django 中实现 S3 媒体文件,但这意味着您的服务器将忙于上传文件。如果你的小型服务器没问题,那也没关系。
【讨论】: