Django项目实战----FastDFS文件存储方案

什么是FastDFS

1. FastDFS介绍

  • 用c语言编写的一款开源的轻量级分布式文件系统。

  • 功能包括:文件存储、文件访问(文件上传、文件下载)、文件同步等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

  • 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。

  • 可以帮助我们搭建一套高性能的文件服务器集群,并提供文件上传、下载等服务。

  • FastDFS架构 包括Client、Tracker server和Storage server。
    Client请求Tracker进行文件上传、下载,Tracker再调度Storage完成文件上传和下载。

  • Client: 客户端,业务请求的发起方,通过专有接口,使用TCP/IP协议与Tracker或Storage进行数据交互。FastDFS提供了upload、download、delete等接口供客户端使用。

  • Tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。

  • Storage server:存储服务器(存储节点或数据服务器),文件和文件属性都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。

  • Storage群中的横向可以扩容,纵向可以备份。

图解FastDFS上传下载文件流程

上传文件
在这里插入图片描述
下载文件
在这里插入图片描述

通过docker运行FastDFS并访问上传的文件

  • Linux安装docker
# cd进入源码目录
cd docker
# 
sudo apt-key add gpg
# 安装3个压缩包
sudo dpkg -i containerd.io_1.3.9-1_amd64.deb
sudo dpkg -i docker-ce-cli_19.03.15_3-0_ubuntu-bionic_amd64.deb
sudo dpkg -i docker-ce_19.03.15_3-0_ubuntu-bionic_amd64
# 查看docker版本
docker -v
  • docker拉取FastDFS镜像
# cd 进入到fastdfs_docker压缩包目录下
# 加载fastdfs镜像
sudo docker load -i fastdfs_docker.tar

运行tracker服务器:
映射在宿主机的文件夹要手动创建 /var/fdfs/tracker
tracker服务器的IP地址要写自己的ip端口默认22122

-dit          后台交互运行
--name        别名
--network     指定网络模式为host
-v            文件夹映射	
-e     		  指定Tracker服务器ip地址	
sudo docker run -dit --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

运行storage服务器:

 sudo docker run -dti --name storage --network=host -e TRACKER_SERVER=自己的ip:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage

这样通过tracker服务器的ip端口8888就可以访问到上传的文件
文件在宿主机上存储的方式
存储的方式类似一个二维矩阵,文件夹套文件夹
在这里插入图片描述
在这里插入图片描述
上传文件
配置文件client.conf

# connect timeout in seconds
# default value is 30s
connect_timeout=30

# network timeout in seconds
# default value is 30s
network_timeout=120

# the base path to store log files
base_path=F:/my_project/django_project/meiduo_project/fdfs/storage/logs

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
# tracker服务器ip地址
tracker_server=自己的ip:22122

#standard log level as syslog, case insensitive, value list:
### emerg for emergency
### alert
### crit for critical
### error
### warn for warning
### notice
### info
### debug
log_level=info

# if use connection pool
# default value is false
# since V4.05
use_connection_pool = false

# connections whose the idle time exceeds this time will be closed
# unit: second
# default value is 3600
# since V4.05
connection_pool_max_idle_time = 3600

# if load FastDFS parameters from tracker server
# since V4.05
# default value is false
load_fdfs_parameters_from_tracker=false

# if use storage ID instead of IP address
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# default value is false
# since V4.05
use_storage_id = false

# specify storage ids filename, can use relative or absolute path
# same as tracker.conf
# valid only when load_fdfs_parameters_from_tracker is false
# since V4.05
storage_ids_filename = storage_ids.conf


#HTTP settings
http.tracker_server_port=80

#use "#include" directive to include HTTP other settiongs
##include http.conf

测试上传文件
mutagen依赖包必须为1.40 高版本出错 不可解决
必须先安装依赖包才能安装fdfs_client-py-master
如果安装fdfs_client-py-mater报错请参考博客:
ls_ange博客

pip install mutagen==1.40
pip install requests
pip install fdfs_client-py-master.zip
from fdfs_client.client import Fdfs_client
# 指定配置文件  client.conf
client = Fdfs_client('utils/fastdfs/client.conf')
# 上传图片  有返回值
test1 = client.upload_by_filename('test.jpg')
print(test1)

返回值为上传文件的url
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要搭建一个django-vue-admin项目,你可以按照以下步骤进行操作: 1. 首先,创建一个Django项目,并安装所需的依赖。在设置文件中,确保你的TEMPLATES配置中包含了以下内容:'BACKEND': 'django.template.backends.django.DjangoTemplates'。 2. 接下来,配置Django的模板上下文处理器。在设置文件中,确保你的TEMPLATES配置中包含了以下内容:'django.contrib.auth.context_processors.auth'和'django.template.context_processors.request'。 3. 然后,安装django-vue-admin库。你可以使用pip安装它:pip install django-vue-admin。 4. 在你的Django项目中创建一个新的应用程序。你可以使用以下命令创建一个名为"admin"的应用程序:python manage.py startapp admin。 5. 在你的项目设置文件中注册新创建的应用程序。将'app名'admin'添加到你的INSTALLED_APPS配置中。 6. 在admin应用程序的目录中创建一个名为"templates"的文件夹,并在其中创建一个名为"admin"的子文件夹。 7. 在"admin"文件夹中创建一个名为"base.html"的模板文件,该文件将作为你的项目的基础模板。 8. 在"base.html"模板文件中,使用Vue.js编写前端代码,以实现你希望在项目中看到的功能和样式。 9. 在你的admin应用程序的视图中,定义需要的后端逻辑和模型操作。 10. 最后,运行你的Django服务器并访问项目的URL,以查看django-vue-admin项目的效果。 请按照以上步骤进行操作,你就可以成功地搭建一个django-vue-admin项目了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Django+Vue环境搭建](https://blog.csdn.net/WeirdoGiraffe/article/details/124863602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值