七牛的配置

https://portal.qiniu.com/bucket/

图片的存储除了上次搭建的fastdfs分布系统可用,还可以借助七牛云这个平台。我们进入七牛云并实名认证后,他就会每月免费提供10G的存储空间,供开发这测试使用。

下面讲解下如何使用js、python来实现在七牛云上的图片存储。可以参考文档SDK

一、获取关键参数

  • 获取AK、SK

在七牛云平台实名认证后,我们需要进入个人中心,点击密钥管理,并将AK和SK这两个值复制保存好,因为在后面django搭建七牛云时会用到。

 

  • 创建存储空间

  • 拿到测试域名CDN

二、安装相应包

  • 安装七牛云

在django项目环境下,执行下面命令。

pip install django-qiniu-storage==2.3.1
# django-qiniu-storage >= 2.0都会出现BUG需要手动改源码才可以完成

三、配置django设置

# 如果要设置为灵活可切换状态可以这样写
QINIU = True  # DEBUG下面最好
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
# 静态文件相关
STATIC_URL = '/static/'  # 见七牛静态文件部署
STATICFILES_DIRS = [
   # os.path.join(BASE_DIR, 'static'), # 这里的静态文件需要转移到别的地方,最好自己的app下
]

# 富文本编辑器文件上传设置 文件上传相关
MEDIA_URL = '/media/'  # 见七牛静态文件部署
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')  # 见七牛静态文件部署
CKEDITOR_UPLOAD_PATH = 'upload/'

# 七牛静态文件储存
if QINIU:
   del MEDIA_URL, MEDIA_ROOT, STATIC_URL
   QINIU_ACCESS_KEY = 'Dp982LV_9nXQ8ZhOHIoJaqKszG_I4TWWmhdGSJkd'  # 个人中心 > 密钥管理 > AK
   QINIU_SECRET_KEY = 'aesmBGdmYkCV01qHcRqNWa_TIQbbXvfVXQUXMJJp'   # 个人中心 > 密钥管理 > SK
   QINIU_BUCKET_NAME = 'yiguo'  # 空间名
   QINIU_BUCKET_DOMAIN = 'puic3tb9d.bkt.clouddn.com'  # 融合 CDN 域名
   QINIU_SECURE_URL = False  # 使用http
   PREFIX_URL = 'http://'

   # 文件系统更改
   DEFAULT_FILE_STORAGE = 'qiniustorage.backends.QiniuMediaStorage'
   MEDIA_URL = PREFIX_URL + QINIU_BUCKET_DOMAIN + "/media/"
   MEDIA_ROOT = 'media'

   # 静态文件部分
   STATIC_URL = QINIU_BUCKET_DOMAIN + '/static/'
   STATIC_ROOT = 'static'  # 自己想要的前缀默认static
   STATICFILES_STORAGE = 'qiniustorage.backends.QiniuStaticStorage'

四、更改qiniustorage的源码

# 当前环境/site-packages/qiniustorage/backends.py
# Ctrl + F 搜索 _normalize_name 函数 注释函数内所有内容,改为
return ("%s/%s"% (self.location, name.lstrip('/'))).lstrip('/')
# Ctrl + F 搜索 QiniuStaticStorage 类
location = settings.STATIC_ROOT or "static"  # 原
# 改为
location = settings.STATIC_ROOT  # 新

五 、收集静态文件储存至七牛云对象服务器

python manage.py collectstatic 
# yes 等待上传完成
关于迁移图片类型数据库里面的文件,参考 qshell

https://developer.qiniu.com/kodo/tools/1302/qshell

关于配置完成,无法范围本地静态文件

配置完成以后无法访问本地静态文件 所有模板统一采用

{% load static %}
<a href="{% url '/static/' %}">首页</a>

这种方式来渲染URL连接 这种方式将无法再连接,

<script src="/static/js/slide.js"></script>

服务器会拒绝连接

 

原文地址:https://www.cnblogs.com/guofeng-1016/p/11290698.html