为用户提供最简单,可靠,高效的分布式文件系统。
环境

用虚拟机装的centOS6.7 ,然后克隆了一台
在这里插入图片描述
centOS6.7 内核升级后版本 3.10.28
ip地址:192.168.214.19
centOS6.7c 内核版本 2.6.32-573.el6.x86_64
ip地址:192.168.214.18

go-fastdfs是什么?

go-fastdfs是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,因此它的运维及扩展变得更加简单,其具有高性能,高可靠,无中心,免维护等优点。

大家担心的是这么简单的文件系统,靠不靠谱,可不可以用于生产环境?答案是肯定的,正因为简单所以高效,因为简单所以稳定。如果你担心功能,那就跑单元测试,如果担心性能,那就跑压力测试

极速体验

适用于开发,或验证功能阶段。
linux 要联网哟

wget --no-check-certificate  https://github.com/sjqzhang/go-fastdfs/releases/download/v1.3.1/fileserver -O fileserver && chmod +x fileserver && ./fileserver
Docker体验
 docker run --network=host --name fastdfs -v /data/fastdfs_data:/data -p 8080:8080 -e GO_FASTDFS_DIR=/data sjqzhang/go-fastdfs
自己编译安装

我们用这种方法
1、去官网下载编译版本

链接: https://github.com/sjqzhang/go-fastdfs/releases
在这里插入图片描述
1.1可以在opt新建一个文件夹做安装目录

mkdir /opt/go-fastDFS

把fileserver文件移进去

2、修改权限变为可执行

root@localhost# chmod +x fileserver

3、运行

root@localhost# ./fileserver

然后Ctrl Z 即可

会生成文件
在这里插入图片描述

配置

修改conf 目录下的cfg.json文件

vim data/conf/cfg.json

因为有两台机器所以
访问端口最好也修改一下 “addr”: “:8087”, “host”: “http://192.168.214.19:8087”,
修改 “peers”: [“http://192.168.214.19:8080”,“http://192.168.214.18:8080”]

{
	"绑定端号": "端口",
	"addr": ":8087",
	"PeerID": "集群内唯一,请使用0-9的单字符,默认自动生成",
	"peer_id": "2",
	"本主机地址": "本机http地址,默认自动生成(注意端口必须与addr中的端口一致),必段为内网,自动生成不为内网请自行修改,下同",
	"host": "http://192.168.214.19:8087",
	"集群": "集群列表,注意为了高可用,IP必须不能是同一个,同一不会自动备份,且不能为127.0.0.1,且必须为内网IP,默认自动生成",
	"peers": ["http://192.168.214.19:8080","http://192.168.214.18:8080"],
	"组号": "用于区别不同的集群(上传或下载)与support_group_upload配合使用,带在下载路径中",
	"group": "group1",
	"是否合并小文件": "默认不合并,合并可以解决inode不够用的情况(当前对于小于1M文件)进行合并",
	"enable_merge_small_file": false,
	"重试同步失败文件的时间": "单位秒",
	"refresh_interval": 1800,
	"是否自动重命名": "默认不自动重命名,使用原文件名",
	"rename_file": false,
	"是否支持web上传,方便调试": "默认支持web上传",
	"enable_web_upload": true,
	"是否支持非日期路径": "默认支持非日期路径,也即支持自定义路径,需要上传文件时指定path",
	"enable_custom_path": true,
	"下载域名": "用于外网下载文件的域名,不包含http://",
	"download_domain": "",
	"场景列表": "当设定后,用户指的场景必项在列表中,默认不做限制(注意:如果想开启场景认功能,格式如下:'场景名:googleauth_secret' 如 default:N7IET373HB2C5M6D ",
	"scenes": [],
	"默认场景": "默认default",
	"default_scene": "default",
	"是否显示目录": "默认显示,方便调试用,上线时请关闭",
	"show_dir": true,
	"邮件配置": "",
	"mail": {
		"user": "abc@163.com",
		"password": "abc",
		"host": "smtp.163.com:25"
	},
	"告警接收邮件列表": "接收人数组",
	"alram_receivers": [],
	"告警接收URL": "方法post,参数:subjet,message",
	"alarm_url": "",
	"下载是否需带token": "真假",
	"download_use_token": false,
	"下载token过期时间": "单位秒",
	"download_token_expire": 600,
	"是否自动修复": "在超过1亿文件时出现性能问题,取消此选项,请手动按天同步,请查看FAQ",
	"auto_repair": true,
	"文件去重算法md5可能存在冲突,默认md5": "sha1|md5",
	"file_sum_arithmetic": "md5",
	"是否支持按组(集群)管理,主要用途是Nginx支持多集群": "默认不支持,不支持时路径为http://10.1.5.4:8080/action,支持时为http://10.1.5.4:8080/group(配置中的group参数)/action,action为动作名,如status,delete,sync等",
	"support_group_manage": false,
	"管理ip列表": "用于管理集的ip白名单,",
	"admin_ips": ["127.0.0.1"],
	"是否启用迁移": "默认不启用",
	"enable_migrate": false,
	"文件是否去重": "默认去重",
	"enable_distinct_file": true,
	"是否开启跨站访问": "默认开启",
	"enable_cross_origin": true,
	"是否开启Google认证,实现安全的上传、下载": "默认不开启",
	"enable_google_auth": false,
	"认证url": "当url不为空时生效,注意:普通上传中使用http参数 auth_token 作为认证参数, 在断点续传中通过HTTP头Upload-Metadata中的auth_token作为认证参数,认证流程参考认证架构图",
	"auth_url": "",
	"下载是否认证": "默认不认证(注意此选项是在auth_url不为空的情况下生效)",
	"enable_download_auth": false,
	"默认是否下载": "默认下载",
	"default_download": true,
	"本机是否只读": "默认可读可写",
	"read_only": false,
	"是否开启断点续传": "默认开启",
	"enable_tus": true
}
执行
root@localhost# ./fileserver &
// 检查运行状态
root@localhost# ps -ef | grep fileserver | grep -v grep 
root       8747   7055  0 04:04 pts/0    00:00:03 ./fileserver
两台服务器都一样配置一遍哟
访问

此时就能通过浏览器访问了
地址:192.168.214.19:8087
地址:192.168.214.18:8087
在这里插入图片描述
在这里插入图片描述

上传一个图片试一下
在这里插入图片描述
返回值

{"url":"http://192.168.214.19:8087/group1/test/cao.jpg","md5":"e5e02d3d031b81109ffeaffab108da60","path":"/group1/test/cao.jpg","domain":"http://192.168.214.19:8087","scene":"default","size":19143,"mtime":1609207483,"scenes":"default","retmsg":"","retcode":0,"src":"/group1/test/cao.jpg"}

上传完成后,在/opt/go-fastDFS/files会新建一个路径 test
在这里插入图片描述

查看图片

返回值里有图片访问路径
在这里插入图片描述
光这样还不行还需要拼上 ?=download=0

通过浏览器就可以查看图片了

在这里插入图片描述
因为我们配置了两台服务器,这两台的服务器数据是同步的,所以访问另一台也是有数据的

http://192.168.214.18:8087/group1/test/cao.jpg?download=0
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐