Alan Hou的个人博客

Django使用七牛云保存图片

Django使用七牛云保存图片

最近在使用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不一样,否则访问不了。

退出移动版