【注】文中相关文件文末提供。
一、安装
1.搜索镜像
docker search fastdfs
由于并没有官方镜像,此处使用该私有镜像。
2.拉取镜像
docker pull morunchang/fastdfs
3.查看镜像
docker images
4.运行tracker 跟踪器
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
5.运行storage 存储器【注意:修改IP为自己的IP 端口不变】
docker run -d --name storage --net=host -e TRACKER_IP=192.168.61.200:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
6.修改nginx的配置,不拦截上传内容
-- 进入容器内部
docker exec -it storage /bin/bash
cd data
ls
-- 修改nginx配置文件
vi nginx/conf/nginx.conf
-- 添加修改内容
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http-cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
-- 退出
exit
- 重启storage服务
docker restart storage
8.查看运行,至此安装完毕
docker ps
二、检验
1.本地使用maven命令(记得配maven的环境变量)获得私有镜像的pom依赖包。其中-Dfile=D:\8888\fastdfs_client-1.25.jar 为该包的路径,根据自己的来修改,包在文末提供下载。
win + R
cmd
mvn install:install-file -Dfile=D:\8888\fastdfs_client-1.25.jar -DgroupId=fastdfs_client -DartifactId=fastdfs_client -Dversion=1.25 -Dpackaging=jar
2.查看maven仓库依赖包
3.新建一个项目,导入FastDFS的依赖,即:将fastdfs依赖包打开找到该pom文件,将其中的坐标加入到新建项目的pom中
4.写一个方法进行测试
package com.demo;
import org.csource.common.MyException;
import org.csource.fastdfs.*;
import java.io.IOException;
public class FastTest {
public static void main(String[] args) throws IOException, MyException {
//1.加载连接信息(如何连接Fast文件服务器),参数是FastDFS的配置文件,D:\\fast\\fdfs_client.conf 配置文件的位置
ClientGlobal.init("D:\\fast\\fdfs_client.conf");
//2.获取跟踪器,创建TrackerClient对象
TrackerClient trackerClient = new TrackerClient();
//获取TrackerServer对象
TrackerServer trackerServer = trackerClient.getConnection();
//创建StorageServer对象,引用为空
StorageServer storageServer = null;
//3.获取存储器
StorageClient storageClient=new StorageClient(trackerServer,storageServer);
//使用storageClient上传文件到服务器,D:\\fast\\abc.jpg为本地准备的要上传的图片
String[] strings = storageClient.upload_file("D:\\fast\\abc.jpg", "png", null);
//上传成功会返回一个字符数组,分别为:文件所在组和文件在组中的位置及名称
for(String s:strings){
System.out.println(s);
}
}
}
5.运行结果为:
其中group1为配置时指定的分组,M00/00/00/wKg9yF6DHV6AGUt3AAGH1fzM7l8648.png为图片在FastDFS服务器上的路径,已经自动进行了重命名。
group1
M00/00/00/wKg9yF6DHV6AGUt3AAGH1fzM7l8648.png
6.访问。自己FastDFS服务器IP,8080是默认端口,后面跟上上面打印的地址。
http://IP:8080/group1/M00/00/00/wKg9yF6DHV6AGUt3AAGH1fzM7l8648.png
结果:
7.访问成功,至此,一个简单的FastDFS服务器就搭建完毕了。
补充:
上传到FastDFS的文件位置:
进入:docker exec -it storage /bin/bash
cd /data/fast_data/data/00/00
下次使用时启动即可:
docker restart storage
docker restart tracker