• django中使用qiniu作为第三方存储


    django使用七牛云存储

    前言

    • 现在的网站基本上都需要上传文件,那么文件会占用大量的存储空间和服务器流量,由此使用第三方存储服务器很有必要,今天我们就使用七牛云存储作为django项目的文件存储服务器

    一、安装

    pip install django-qiniu-storage
    

    二、settings配置

    配置参数 备注
    QINIU_ACCESS_KEY 七牛给开发者分配的 AccessKey
    QINIU_SECRET_KEY 七牛给开发者分配的 Secret
    QINIU_BUCKET_NAME 用来存放文件的七牛空间(bucket)的名字
    QINIU_BUCKET_DOMAIN 七牛空间(bucket)的域名
    QINIU_SECURE_URL 是否通过 HTTPS 来访问七牛云存储上的资源, 默认为False

    三、在django中的使用

    1、settings.py

    QINIU = True
    
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    CKEDITOR_UPLOAD_PATH = 'upload/'
    
    if QINIU:
        del STATIC_URL, STATICFILES_DIRS, MEDIA_URL, MEDIA_ROOT
        # 七牛云存储设置
        QINIU_ACCESS_KEY = ''
        QINIU_SECRET_KEY = ''
        QINIU_BUCKET_NAME = ''
        QINIU_BUCKET_DOMAIN = ''
        QINIU_SECURE_URL = False
        PREFIX_URL = 'http://'
    
        # STATIC文件的更改
        STATIC_URL = QINIU_BUCKET_DOMAIN + '/static/'
        STATIC_ROOT = 'static'
        STATICFILES_STORAGE = 'qiniustorage.backends.QiniuStaticStorage'
    
        # 文件系统更改
        DEFAULT_FILE_STORAGE = 'qiniustorage.backends.QiniuMediaStorage'
        MEDIA_URL = PREFIX_URL + QINIU_BUCKET_DOMAIN + "/media/"
        MEDIA_ROOT = 'media'
    

    2、运行命令将static文件夹下内容上传到七牛云

    python manage.py collectstatic
    

    2.1、如果报错,则找到源码更改

    # /site-packages/qiniustorage/backends.py
    # Ctrl + F 搜索 _normalize_name 函数 注释函数内所有内容,改为
    return ("%s/%s"% (self.location, name.lstrip('/'))).lstrip('/')
    

    3、模板中使用

    {{ load static }}
    <link rel="stylesheet" type="text/css" href="{% static '/html/css/reset.css' %}">
    

    四、效果预览


    你的无畏来源于你的无知!

  • 相关阅读:
    Dev 控件笔记1 repositoryItemLookUpEdit 控件
    装饰账务管理
    Tiptop ERP 采购运费一键分摊
    笔记:两数互相交换,不使用第三方变量
    .net core3.0 webapi搭建(一)
    【笔记】冒泡排序
    Mysql 几种常见的插入 Insert into,Replace Into,Insert ignore
    【转】IEnumerable接口的一个简单示例
    [转]从实例谈OOP、工厂模式和重构
    浅谈C#委托的用法-delegate[转]
  • 原文地址:https://www.cnblogs.com/YiwenGG/p/14288609.html
Copyright © 2020-2023  润新知