怀柔区企业网站设计机构提供网页技术
news/
2025/9/29 8:31:43/
文章来源:
怀柔区企业网站设计机构提供,网页技术,厦门响应式网站制作,免费微信小程序开发平台关于FastDFS
FastDFS 是以 C 语言开发的一项开源轻量级分布式文件系统#xff0c;他对文件进行管理#xff0c;主要功能有#xff1a;文件存储#xff0c;文件同步#xff0c;文件访问#xff08;文件上传/下载#xff09;等#xff0c;特别适合以文件为载体的在线服务…关于FastDFS
FastDFS 是以 C 语言开发的一项开源轻量级分布式文件系统他对文件进行管理主要功能有文件存储文件同步文件访问文件上传/下载等特别适合以文件为载体的在线服务如图片网站视频网站等。
外话FastDFS 是阿里余庆大神做的一个个人项目从2008年研发FastDFS开源至今在一些互联网创业公司中备受推崇GitHub开源地址https://github.com/happyfish100/fastdfs
本文基于Docker搭建以下是正文内容
1、搜索镜像
执行命令
docker search fastdfs然后界面会搜出一大堆镜像选哪个呢 老规矩我们选择start数最多的准没错什么start数不放心怕被挂马ok我们再去镜像仓库看一下 补充 其实看这些镜像的描述也能看出一些区别来的比如 ygqygq2/fastdfs-nginx该镜像是整合了 Nginx 的 fastdfs那么新的问题来了为什么要整合 Nginx因为对于 fastdfs 来说安装后只能在本机访问… 我上传文件肯定是为了能够访问的呀所以为了提供 web 访问那么就需要集成 Nginx 了但是比如就是想自己单独搞 Nginx… 那么肯定就不会选了嘛season/fastdfs 镜像相对纯净些本文就是基于 season/fastdfs 镜像的后面也附带配置 Nginx…
2、安装镜像
执行命令
docker pull season/fastdfs:1.2之所以选择 1.2 版本防止再次更新后本文不适合 latest 版本执行截图如下
3、创建容器并挂载目录
在创建容器之前我们先简单说一下 FastDFSFastDFS 系统有三个角色
跟踪服务器(Tracker Server)跟踪服务器主要做调度工作起到均衡的作用负责管理所有的 storage server和 group每个 storage 在启动后会连接 Tracker告知自己所属 group 等信息并保持周期性心跳。存储服务器(Storage Server)存储服务器主要提供容量和备份服务以 group 为单位每个 group 内可以有多台 storage server数据互为备份。客户端(Client)上传下载数据的服务器也就是我们自己的项目所部署在的服务器。
说到这就是想告诉小伙伴接下来我们可能创建 跟踪服务器容器、存储服务器容器、客户端容器 这三个容器…
3.1、创建出所需要的目录
我们先把需要的一些目录创建出来(数据目录、数据存储目录等)执行命令
mkdir -p /usr/local/server/fastdfs/trakcer/data
mkdir -p /usr/local/server/fastdfs/storage/data
mkdir -p /usr/local/server/fastdfs/storage/path3.2、创建trakcer容器跟踪服务器容器
执行命令
docker run -id --name tracker \
-p 22122:22122 \
--restartalways --net host \
-v /usr/local/server/fastdfs/tracker/data:/fastdfs/tracker/data \
season/fastdfs:1.2 tracker再唠叨一下上方命令
-d让容器在后台运行-p指定容器内部使用的网络端口映射到我们使用的主机上–name指定容器创建的名称-v容器跟宿主机之间的挂载目录
3.3、创建storage容器存储服务器容器
执行命令非最终执行命令请修改为自己的ip地址
docker run -id --name storage \
--restartalways --net host \
-v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \
-e TRACKER_SERVER10.211.55.4:22122 \
season/fastdfs:1.2 storage3.4、client测试
两个容器创建完之后但此时两个容器其实并没有关联起来我们进入tracker容器通过client.conf测试一下
docker exec -it tracker bash
cd /etc/fdfs/
ls
cat client.conf输出的 client.conf 都是默认配置我们可以找到其中的 track_server 地址 尝试执行一下连接
fdfs_monitor client.conf然后会得到如下内容
ERROR - file: ../common/connection_pool.c, line: 84, connect to 192.168.209.121:22122 fail, errno: 110, error info: Connection timed out也就是在没有修改client配置之前默认 tracker 是去连接 192.168.209.121 地址的那么接下来就是需要去配置client配置文件了。
3.4、修改client.conf配置文件
通过 docker exec -it tracker bash 进入 tracker 容器后不能使用 vi vim 命令所以干脆将 client.conf 配置文件复制出来在宿主机修改完再粘贴回去。
执行命令
docker cp trakcer:/etc/fdfs/client.conf /usr/local/server/fastdfs/我们通过 docker 指令将配置文件复制到 /usr/local/server/fastdfs/ 目录。
我们编辑这个文件修改 tracker_url 地址vi client.conf 修改后保存然后将修改后的文件替换回去。指令命令
docker cp /usr/local/server/fastdfs/client.conf tracker:/etc/fdfs 至此配置文件修改完了接下来我们创建文件上传测试一下。
4、文件上传测试
执行命令进入 tracker 容器中
docker exec -it tracker bash随便创建一个 txt 文件
echo niceyoo niceyoo.txt然后通过 fdfs_upload_file 命令将 niceyoo.txt 文件上传至服务器
fdfs_upload_file /etc/fdfs/client.conf niceyoo.txt如果此时报了如下错误 那么就创建一下这个路径没有的跳过
mkdir -p /home/yuqing/fastdfs创建目录后重新尝试提交 我们复制出这个文件名来group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt这个名称后面有用将用作后面配置nginx时配置访问文件路径。
因为我们之前挂载了宿主机的目录我们去 cd /usr/local/server/fastdfs 看一下
cd /usr/local/server/fastdfs/data/storage/data
ls输出内容如下
5、配置Nginx
前面的补充已经提到了默认上传的文件是只能在本机访问的当然这样肯定是不行的所以我们需要配置一下Nginx 来帮我们实现 Web 访问的效果。
创建nginx目录
mkdir -p /usr/local/server/fastdfs/nginx/将storage容器中的nginx配置文件复制出来
docker cp storage:/etc/nginx/conf/nginx.conf /usr/local/server/fastdfs/nginx/修改nginx中的配置
vi /usr/local/server/fastdfs/nginx/nginx.conf找到local节点修改为 location / {root /fastdfs/store_path/data;ngx_fastdfs_module;}相关截图如下 接下来就是创建nginx容器并指向刚刚的配置文件了。
没有安装过nginx的小伙伴同样可以执行如下指令默认会帮你拉取镜像然后安装的。
注意请修改ip地址后再执行
docker run -id --name fastdfs_nginx \
--restartalways \
-v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \
-v /usr/local/server/fastdfs/nginx/nginx.conf:/etc/nginx/conf/nginx.conf \
-p 8888:80 \
-e TRACKER_SERVER10.211.55.4:22122 \
season/fastdfs:1.2 nginx至此我们查看一下目前创建以及启动的容器 我们测试一下之前上传的文件 group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt执行如下命令
curl -i http://127.0.0.1:8888/group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt执行结果 至此整个过程就搭建成功了我们通过浏览器访问一下 搭建完成怎么在项目当中使用呢
SpringBoot集成FastDFS依赖实现文件上传 你知道的越多不知道的就越多欢迎关注我的微信公众号niceyoo
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921573.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!