python-django框架中使用FastDFS分布式文件系统
一、安装FastDFS
1-1:执行docker命令安装
- # 安装tracker
- docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs youkou1/fastdfs tracker
- # 安装storage
- docker run -dti --network=host --name storage -e TRACKER_SERVER=IP地址:22122 -v /var/fdfs/storage:/var/fdfs youkou1/fastdfs storage
1-2 测试是否安装成功:执行命令 docker ps -a
TRACKER_SERVER:IP地址说明不要使用lo 和docker下的IP地址因为在安装镜像中配的是enp3s0下面的IP地址。
1-3、在项目中创建客户端配置文件 fastdfs/client.conf
client.conf配置文件内容:注意tracker_serverIP地址。
- # connect timeout in seconds
- # default value is 30s
- connect_timeout=30
- # network timeout in seconds
- # default value is 30s
- network_timeout=60
- # the base path to store log files
- # base_path=utils/fastdfs/logs
- # tracker_server can ocur more than once, and tracker_server format is
- # "host:port", host can be hostname or ip address
- tracker_server=192.168.31.170: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
- use_connection_pool = false
- # connections whose the idle time exceeds this time will be closed
- # unit: second
- # default value is 3600
- connection_pool_max_idle_time = 3600
- # if load FastDFS parameters from tracker server
- # 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
- 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
- storage_ids_filename = storage_ids.conf
- #HTTP settings
- http.tracker_server_port=80
1-4:在xhell中进入项目的虚拟环境安装python相关包 (在虚拟环境中)
- # 安装相关包
- pip install fdfs_client.zip
- pip install mutagen
- pip install requests
1-5:如果pip install fdfs_client.zip 安装报错
请执行如下命令
- sudo apt-get install python3 python-dev python3-dev build-essential libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev python-pip
然后在执行安装命令:
查看所安装的包:
分析上传步骤:
1) 指定图片绝对地址
2) 指定图片服务器地址;使用 Client.conf 配置文件
3) 加载图片服务器,连接图片服务器
4) 创建图片服务器 tracker 客户端
5) 从客户端获取 tracker 连接
6) 创建 storage 客户端,存储图片
测试代码:
- from fdfs_client.client import Fdfs_client
- FDFS_Client = Fdfs_client('/common/fastdfs/client.conf')
- ret = FDFS_Client.upload_by_filename('/media/2018.png')
- print(ret)
如果执行不报错,返回结果如下说明就成功了:
1-6 如果进行测试 以下报的是语法错误,这个明显是python2的语法,我现在用的是python3,进过查询相关资料,决定换一个不用 pip install fdfs_client.zip
删除 fdfs_client.zip 执行命令
- pip uninstall fdfs_client-py
使用pip install py3Fdfs
再次测试:
在浏览器中查看:
http://192.168.31.170:8888/group1/M00/00/00/wKgfqlz5yYyAHe5nAAfh_rrm7jw601.png
注意:这里的端口8888也是在上面安装环境中配好的。
python-django框架中使用FastDFS分布式文件系统的更多相关文章
- django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除
运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...
- 分布式队列celery 异步----Django框架中的使用
仅仅是个人学习的过程,发现有问题欢迎留言 一.celery 介绍 celery是一种功能完备的即插即用的任务对列 celery适用异步处理问题,比如上传邮件.上传文件.图像处理等比较耗时的事情 异步执 ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- Python的Django框架中的Cookie相关处理
Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...
- Python的Django框架中的Context使用
Python的Django框架中的Context使用 近期整理些Python方面的知识,一旦你创建一个 Template 对象,你能够用 context 来传递数据给它. 一个context是一系列变 ...
- Python中的Django框架中prefetch_related()函数对数据库查询的优化
实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- Python的Django框架中的URL配置与松耦合
Python的Django框架中的URL配置与松耦合 用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比 ...
- FastDFS分布式文件系统
FastDFS分布式文件系统 阅读目录 相关文章 1 分布式文件系统介绍 2 系统架构介绍 3 FastDFS性能方案 4 Linux基本命令操作 5 安装VirtualBox虚拟机并配置Ubuntu ...
- FastDFS 分布式文件系统的安装与使用(单节点)
FastDFS 分布式文件系统的安装与使用(单节点) 跟踪服务器:192.168.4.121 (edu-dfs-tracker-01) 存储服务器:192.168.4.125 (edu-dfs-sto ...
随机推荐
- Swift 烧脑体操(二) - 函数的参数
前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困 ...
- 创建blog APP
声明:此Django分类下的教程是追梦人物所有,地址http://www.jianshu.com/u/f0c09f959299,本人写在此只是为了巩固复习使用 什么是APP呢,Django里的APP其 ...
- matlab之sum()函数
sum(A,1):对矩阵A按照列求和: sum(A,2):对矩阵A按照行求和: 默认情况下,是按照列求和的. 举例: A=[1 2 3;1 2 3] sum(A,1)的结果: ans = 2 4 6 ...
- Vagrant + Vbox实战 【转】
原文地址:http://www.cnblogs.com/suihui/p/4362233.html 一.软件下载 1.下载Oracle VM VirtualBox https://www.virtua ...
- C++(一)— stringstream的用法
输入输出的头文件 <iostream> string流的头文件 <sstream> 文件流的头文件 <fstream> 1.利用输入输出做数据转换 stri ...
- EOF的使用
1.我疑惑了 char a[20]; while(scanf("%s",a)!=EOF){ cout<<"hello"<<endl; } ...
- PSPnet:Pyramid Scene Parsing Network——作者认为现有模型由于没有引入足够的上下文信息及不同感受野下的全局信息而存在分割出现错误的情景,于是,提出了使用global-scence-level的信息的pspnet
from:https://blog.csdn.net/bea_tree/article/details/56678560 2017年02月23日 19:28:25 阅读数:6094 首先声明,文末彩蛋 ...
- super.onCreate(savedInstanceState) 以及onCreate(Bundle savedInstanceState, PersistableBundle persistentState)
super.onCreate(savedInstanceState) 调用父类的onCreate构造函数. 当一个Activity在生命周期结束前,会调用onSaveInsanceState()这个回 ...
- zepto.fullpage
内容来自:颜海镜 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Stop logging "internal dummy connection" in Apache
Apache 2.x keeps child processes alive by creating internal connections which appear in the log file ...