ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

django_ckeditor图片上传到七牛云

2021-07-27 18:01:46  阅读:237  来源: 互联网

标签:七牛云 ckeditor self QINIU django KEY file name


参考信息

django + ckeditor + 七牛云,图片上传到七牛云:http://xieboke.net/article/56/

实现

1.编写ckeditor_storage.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
import datetime
import uuid
from django.core.files.storage import Storage
from qiniu import Auth, put_data
from joyoo.settings import QINIU_ACCESS_KEY, QINIU_SECRET_KEY, QINIU_BUCKET_DOMAIN, QINIU_BUCKET_NAME


class StorageObject(Storage):
    def __init__(self):
        self.now = datetime.datetime.now()
        self.file = None

    def _new_name(self, name):
        new_name = "file/{0}/{1}.{2}".format(self.now.strftime("%Y/%m/%d"), str(uuid.uuid4()).replace('-', ''),
                                             name.split(".").pop())
        return new_name

    def _open(self, name, mode):
        return self.file

    def _save(self, name, content):
        """
        上传文件到七牛
        """
        # 构建鉴权对象
        q = Auth(QINIU_ACCESS_KEY, QINIU_SECRET_KEY)
        token = q.upload_token(QINIU_BUCKET_NAME)
        self.file = content
        file_data = content.file
        ret, info = put_data(token, self._new_name(name), file_data.read())

        if info.status_code == 200:
            base_url = 'http://%s/%s' % (QINIU_BUCKET_DOMAIN, ret.get("key"))
            # 表示上传成功, 返回文件名
            return base_url
        else:
            # 上传失败
            raise Exception("上传七牛失败")

    def exists(self, name):
        # 验证文件是否存在,因为会去生成一个新的名字存储到七牛,所以没有必要验证
        return False

    def url(self, name):
        # 上传完之后,已经返回的是全路径了
        return name

2.设置setting.py

INSTALLED_APPS = [
    'ckeditor',
    'ckeditor_uploader',
]

CKEDITOR_UPLOAD_PATH = ''  # 图片ckeditor文件上传路径, 这里使用七牛云存储,不填
CKEDITOR_JQUERY_URL = '//cdn.bootcss.com/jquery/1.11.3/jquery.min.js'
# CKEDITOR_IMAGE_BACKEND = 'pillow'  # 注释掉就是禁止生成缩略图,传七牛云要注释掉
DEFAULT_FILE_STORAGE = 'blog.ckeditor_storage.StorageObject'  # app名称.app下的文件名称.类名

# 七牛云相关配置
QINIU_ACCESS_KEY = ''
QINIU_SECRET_KEY = ''
QINIU_BUCKET_DOMAIN = ''
QINIU_BUCKET_NAME = ''

3.测试,成功

标签:七牛云,ckeditor,self,QINIU,django,KEY,file,name
来源: https://www.cnblogs.com/1fengchen1/p/15067218.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有