zoukankan      html  css  js  c++  java
  • django -七牛云对象存储

    django部署七牛云对象储存服务器

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

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

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

    一、获取关键参数

    • 获取AK、SK

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

    img

    • 创建存储空间

    img

    img

    • 拿到测试域名CDN

    img

    二、安装相应包

    • 安装七牛云

    在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 = 'bm-V0IyKPuFLRWJengvWtXvDC8Gx5BQhCN0kIBrE'  # 个人中心 > 密钥管理 > AK
        QINIU_SECRET_KEY = 'FYaPq_T81VDCK4-c5Ad-hRf6myQ_zuq1cywD2D4P'   # 个人中心 > 密钥管理 > SK
        QINIU_BUCKET_NAME = 'bucket0415'  # 空间名
        QINIU_BUCKET_DOMAIN = 'api.donghaiming.cn'  # 融合 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="{{picture.url}}">首页</a>
    

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

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

    服务器会拒绝连接

  • 相关阅读:
    javascript实现网页分享至朋友圈功能
    Vue中全局过滤器期与局部过滤器期的使用
    vue中添加与删除,关键字搜索
    vue生命周期
    4种常用的Ajax请求方式
    CSS 基础总结
    BEM思想之彻底弄清BEM语法
    学习前端过程中用到的资料
    深入理解,函数声明、函数表达式、匿名函数、立即执行函数、window.onload的区别.
    html基础
  • 原文地址:https://www.cnblogs.com/lichaoya/p/13744585.html
Copyright © 2011-2022 走看看