1.自定义文件存储器类

  1. 配置文件settings中加入如下配置

# 设置Django的文件存储类、(名字固定)
DEFAULT_FILE_STORAGE='utils.fdfs.storage.FDFSStorage'# 设置fdfs使用的client.conf文件路径(名字自己定义)
FDFS_CLIENT_CONF='./utils/fdfs/client.conf'# 设置fdfs存储服务器上nginx的IP和端口号(名字自己定义)
FDFS_URL='http://172.16.179.131:8888/'
  1. 创建utils/fdfs 目录
  2. storage.py文件中自定义文件存储类

FDFSStorage继承Storage,并重写_open、_save方法

from django.core.files.storage import Storage
from django.conf import settings
from fdfs_client.client import Fdfs_clientclass FDFSStorage(Storage):'''fast dfs文件存储类'''def __init__(self, client_conf=None, base_url=None):'''初始化'''if client_conf is None:client_conf = settings.FDFS_CLIENT_CONFself.client_conf = client_confif base_url is None:base_url = settings.FDFS_URLself.base_url = base_urldef _open(self, name, mode='rb'):'''打开文件时使用'''passdef _save(self, name, content):'''保存文件时使用'''# name:你选择上传文件的名字# content:包含你上传文件内容的File对象# 创建一个Fdfs_client对象client = Fdfs_client(self.client_conf)# 上传文件到fast dfs系统中res = client.upload_by_buffer(content.read())# dict# {#     'Group name': group_name,#     'Remote file_id': remote_file_id,#     'Status': 'Upload successed.',#     'Local file name': '',#     'Uploaded size': upload_size,#     'Storage IP': storage_ip# }if res.get('Status') != 'Upload successed.':# 上传失败raise Exception('上传文件到fast dfs失败')# 获取返回的文件IDfilename = res.get('Remote file_id')return filenamedef exists(self, name):'''Django判断文件名是否可用'''return Falsedef url(self, name):'''返回访问文件的url路径'''return self.base_url+name

2.项目上传图片和使用图片流程

3.FastDFS结合Nginx优点

1)海量存储,存储容量扩展方便
2)文件内容重复
3)结合Nginx提高网站提供图片的效率

Django二次开发对接FastDFS相关推荐

  1. 泛微E9二次开发,对接金蝶云星空,数据同步,表单同步。

    文章目录 泛微E9二次开发,对接金蝶云星空 一.搭建开发环境,引入相关依赖 一.创建项目 二.配置javaSDK 三.配置项目依赖 四.编写测试代码 五.配置编译 六.resin远程debug配置 二 ...

  2. Java二次开发 对接灵信led大屏

    1.首先去灵信官网下载java开发包 2.按照demo进行开发 3.ddl动态库放在jdk的bin目录下 4.安装visual studio 2008运行环境中的vcredist_x64.exe,安装 ...

  3. 无需二次开发 搭建一套专属于自己的幼儿园智慧校园视频监控平台解决方案

    学生安全问题一直以来都是校方和学生家长最重视的问题,保护学生在上学期间安全有保障.不受到来自外界的安全威胁是校方的职责所在,也是学生家长们选择孩子入学场所最关心的条件之一.为了打造一个和谐.舒适的平安 ...

  4. python开源项目框架二次开发_Python中三大框架各自的应用场景(DJango,flask,Tornado)...

    django:主要是用来搞快速开发的,他的亮点就是快速开发,节约成本,正常的并发量不过10000,如果要实现高并发的话,就要对django进行二次开发,比如把整个笨重的框架给拆掉,自己写socket实 ...

  5. 聚播微信群控云控引擎二次开发SDK服务端对接接口

    聚播微信群控云控引擎二次开发SDK服务端对接接口 case HeartBeatReq: {// 客户端发送的心跳包heartBeatReqHandler.handleMsg(ctx, msgVo);b ...

  6. EasyDSS流媒体服务器软件-搭建及二次开发接口对接说明示列

    EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作. 其中,点播功能主要包含:上传.转码.分发.直播功能主要包含:直播.录像, 直播支持RTMP输 ...

  7. 从YARN迁移到k8s,滴滴机器学习平台二次开发是这样做的

    整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]人工智能时代,机器学习已经渗透进每个领域,改变了这些领域的业务模式.技术架构以及方法论.随着深度学习技术近年来快速发展,高 ...

  8. GPS定位系统源码只有这种才是最适合做二次开发的...

    GPS定位系统是一个泛概念,有很多种类,比如公交车,物流车,渣土车,船运车辆,宠物定位等等监控管理系统都属于GPS定位系统里面的一个分支!每个分支的应用场景都不一样,宠物定位的GPS定位系统主要侧重宠 ...

  9. GPS定位系统源码二次开发就选专为二次开发而生的GPSBD...

    GPS定位系统二次开发需要注意哪些地方呢,不是所有的源代码都适合做二次开发的:所有的系统从一开始设计初期就有系统自己的定义,这套系统主要是用来做什么的,所有的设计架构都是围绕这个目的来做的,所以如果要 ...

最新文章

  1. java如何实现成绩排序,小实例-实现对成绩总分由高到低的排序-Java中数组对象的排序...
  2. RocketMQ 消息丢失场景及解决办法
  3. AddOutParameter引发类型问题
  4. android程序崩溃了却没法通过log查看错误日志
  5. 针对媒体不实报道误导大众--抹黑C#工资垫底
  6. python3.6字典有序_为什么Python 3.6以后字典有序并且效率更高?
  7. array数组的若干操作
  8. CCCC-GPLT L3-015. 球队“食物链” 团体程序设计天梯赛
  9. php h5视频录制上传,基于koa的h5视频录制异步上传
  10. 第二章 身份验证——跟我学习springmvc shiro mybatis
  11. Linux操作系统应用领域详解
  12. 让联想 IdeaPad 710s-13ISK 遇到最新版黑苹果macOS Mojave 10.14.5
  13. Ubuntu | ubuntu下安装edge
  14. 牛客网--16128--小名的回答
  15. python学习——matplotlib颜色设置适合论文的配色
  16. Windows下运行PP-Tracking_GUi
  17. 最新VIN(车辆识别码)解析
  18. Cent OS网络基本配置——修改配置文件
  19. [LGOJ5558]心上秋(倍增)
  20. ups不间断电源品牌_德国阳光蓄电池_蓄电池代理-山东万仁电源设备有限公司

热门文章

  1. IPFS下载安装和配置
  2. Python学习15 正则表达式1
  3. 年薪50万码农转行卖凉皮,互联网思维又一次颠覆?
  4. 广州驾校考试实际道路考试注意事项(图)
  5. FFmpeg的C++封装:FFmpegWrapper
  6. 面试风云录(02) - 与顶级CTO交手的难忘经验...
  7. Maven Helper 安装使用(jar 包管理工具)
  8. docker build Dockfile ---- RUN 中 cd 切换路径失败 的原因、解决
  9. IIS新建站点服务器,localhost能登录但是IP访问登录不了。
  10. Datawhale MySQL 训练营 Task2 查询语句