Django + Heroku + S3

Jon*_*han 5 django heroku amazon-s3

我一直在努力研究如何使用适用于FileField和ImageField上传的Heroku来使用AWS S3.但我一直没能让它发挥作用.

计划是

  1. 使用FileField上传一些文件.
  2. 将ImageField用于个人资料照片.
  3. 使用Sorl缩略图调整这些图片的大小.

我遵循了这篇文章,但似乎没有用.有什么东西我错过了吗?我希望文件上传尽可能轻松.有没有比AWS更好的替代方案,django和heroku友好?在这方面的任何帮助将受到高度赞赏.

Pra*_*kar 6

使用Django Storages管理S3上的静态文件.然后在部署时遵循Heroku Static资源指南.

首先,使用AWS控制台或您喜欢的工具在S3中创建存储桶.然后,修改settings.py并添加以下值:

import os

AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = '<YOUR BUCKET NAME>'

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

STATIC_URL = 'http://' + AWS_STORAGE_BUCKET_NAME + '.s3.amazonaws.com/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
Run Code Online (Sandbox Code Playgroud)

请注意,我们使用环境变量来存储AWS访问密钥和密钥.当我们讨论这个主题时,如果您计划开源正在部署的Django应用程序,请考虑将SECRET_KEY存储在环境变量中.

以上是从这里开始的