guofeng-1016

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>

服务器会拒绝连接

 

分类:

技术点:

相关文章:

  • 2021-06-20
  • 2021-12-03
  • 2021-05-09
  • 2021-07-04
  • 2021-11-03
  • 2021-04-18
  • 2021-06-12
  • 2021-10-14
猜你喜欢
  • 2021-06-07
  • 2021-07-16
  • 2021-06-21
  • 2021-08-12
  • 2021-10-01
  • 2021-09-24
  • 2021-07-30
相关资源
相似解决方案