zoukankan      html  css  js  c++  java
  • Django框架文件保存的流程(以及自定义FDFS)

    Django框架文件保存的流程


    自定义文件存储类过程说明

    自定义FDFS文件存储类

    from django.core.files.storage import Storage
    from django.conf import settings
    
    from fdfs_client.client import Fdfs_client
    from rest_framework.exceptions import APIException
    
    
    class FDFSStorage(Storage):
        """FDFS自定义文件存储类"""
        def __init__(self, client_conf=None, base_url=None):
            if client_conf is None:
                client_conf = settings.FDFS_CLIENT_CONF
    
            # 保存fdfs客户端配置文件路径
            self.client_conf = client_conf
    
            if base_url is None:
                base_url = settings.FDFS_URL
    
            # 保存storage中nginx的地址
            self.base_url = base_url
    
        def _save(self, name, content):
            """
            name: 上传文件的名称
            content: 包含上传文件内容的File对象,content.read()获取上传文件内容
            """
            # 将文件上传FDFS文件系统
            client = Fdfs_client(self.client_conf)
    
            # 上传文件
            res = client.upload_by_buffer(content.read())
    
            # 判断上传是否成功
            if res.get('Status') != 'Upload successed.':
                raise APIException('上传文件到FDFS失败')
    
            # 获取file_id
            file_id = res.get('Remote file_id')
            return file_id
    
        def exists(self, name):
            """
            判断上传文件的名称和文件系统中原有的文件名是否冲突
            name: 上传文件的名称
            """
            return False
    
        def url(self, name):
            """
            返回可访问到文件系统文件的完整url地址:
            name:表中文件字段存储内容
            """
            return self.base_url + name
    
    • 修改Django框架的默认文件存储类
    DEFAULT_FILE_STORAGE='meiduo_mall.utils.fdfs.storage.FDFSStorage'
    
    • def url()作用


  • 相关阅读:
    C++学习笔记1——const
    反转二叉树
    pywinauto 使用
    pywinauto 的使用
    爬虫基础知识
    mongdb安装配置
    pyinstaller
    Python3.6+pyinstaller+Django
    py2exe安装使用
    cx_freeze的安装使用
  • 原文地址:https://www.cnblogs.com/oklizz/p/11311853.html
Copyright © 2011-2022 走看看