最近在使用Django写项目,考虑将图片放到七牛云上,使用xadmin进行后台管理。我们都知道在models中使用ImageField可以直接生成数据表,其中的upload_to直接设置上传路径,这样在django的admin或xadmin中可以直接完成上传,但这种上传只能上传到本地,于是在网上搜到了下文,非常简单有效:
转载网址: http://www.cnblogs.com/wj5633/p/6562624.html
正文:
最近,写了一个django项目,想在项目中使用七牛云存储上传图片,在网上搜索到django-qiniu-storage,查看文档,按步骤居然设置成功了。
安装
pip install django-qiniu-storage
注册七牛云账号
打开七牛云注册认证,在个人中心找到两个Key,添加一个存储空间就可以得到bucket的域名。这样就拿到了项目所需的4个配置:
QINIU_ACCESS_KEY QINIU_SECRET_KEY QINIU_BUCKET_NAME QINIU_BUCKET_DOMAIN
Django中配置 setting.py
QINIU_ACCESS_KEY = 'zPObn7m8F5RZ1dF9kth4Wivz7WE89rWL1sA_Zt' QINIU_SECRET_KEY = 'sLdn1AkrebELj-vdFIZs6cmV3LRP13P-qShZEf' QINIU_BUCKET_NAME = 'wj5633' QINIU_BUCKET_DOMAIN = 'ompehspge.bkt.clouddn.com/' QINIU_SECURE_URL = False #使用http PREFIX_URL = 'http://' MEDIA_URL = PREFIX_URL + QINIU_BUCKET_DOMAIN + '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') DEFAULT_FILE_STORAGE = 'qiniustorage.backends.QiniuMediaStorage'
这样上传的文件就到七牛云空间了,下面让静态文件也放到七牛云,继续配置:
STATIC_URL = QINIU_BUCKET_DOMAIN + '/static/' # STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_STORAGE = 'qiniustorage.backends.QiniuStaticStorage'
运行命令
python manage.py collectstatic
app/static和工程/static都将上传七牛云。
注意:这里STATIC_URL不能带http://,和MEDIA_URL不一样,否则访问不了。