1、FastDFS
- FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
- FastDFS架构包括
Tracker server
、Storage serve
r。客户端请求Tracker server
进行文件下载、上传,通过Tracker serve
r调度最终由Storage server
完成文件上传和下载。
Tracker server
作用是负载均衡和调度,通过Tracker server
在文件上传时可以根据一些策略找到Storage server提供上传文件 服务,可以将tracker称为追踪服务器或调度服务器Storage server
作用是文件存储,客户端上传的文件最终存储在Storage
服务器上,Storage server
没有实现自己的文件系统而是调用操作系统的文件系统来管理文件,可以将Storage
称为储存服务器
- 服务端两个角色:
- Tracker:管理集群,Tracker也可以实现集群。每个tracker节点地位平等。收集Strong集群的状态。
- Storage:实际保存文件,Storage分为多个组,每个组件之间保存的文件是不同的。每个组内部可以有多个成员,组成员内部保存的内容的文件是不同。每个组成的地位一致,没有主从概念。
## 2、文件上传流程
- 客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文 件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
3.、文件下载流程
4、简易FastDFS构建
自定义文件存储系统的方法如下:
1,需要继承自django.core.files.stroage.Storage
from django.core.files.storage import Storage
class FastDFSStorage(Storage):
...