1 . fastDfs工作原理
2.安装
docker安装教程 https://docs.docker.com/engine/install/centos/
2.1 Docker安装
2.1.1卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.1.2 设置 Docker 存储库
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2.1.3 安装
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2.1.4 启动 Docker
systemctl start docker
2.1.5使用阿里云提速
https://www.aliyun.com/
自行百度
3.fastDFS安装
3.1 通过docker查看fastdfs相关镜像
docker search fastdfs
3.2 拉取所需的镜像
选择delron/fastdfs这个镜像包含了tracker、storage、Nginx
docker pull delron/fastdfs
3.3构建Tracker服务
docker run -d --name tracker --network=host -v /mydata/fastdfs/tracker:/var/fdfs delron/fastdfs tracker
查看Tracker日志
docker logs tracker
正常日志
3.4构建Storage服务
ip要改成Tracker服务的ip地址
docker run -d --name storage --network=host -e TRACKER_SERVER=192.168.199.130:22122 -v /mydata/fastdfs/storage:/var/fdfs -e GROUP_NAME=group1 delron/fastdfs storage
查看Storage日志
docker logs storage
正常日志
Nginx
配置端口
docker exec -it storage bash
cd /etc/fdfs
4.测试图片上传
步骤一:在/mydata/fastdfs/storage下保存图片
步骤二:进入storage容器,并进入/var/fdfs目录
docker exec -it storage bash
cd /var/fdfs
步骤三:执行如下指令,1.jpg是图片
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.jpg
步骤三:浏览器访问
注意:如果遇到在浏览器访问不到图片可以关闭防火墙
5.文件上传
6.文件下载
7.Springboot整合FastDFS
pom.xml
fdfs.connect-timeout=2000
fdfs.so-timeout=2000
fdfs.tracker-list=192.168.199.130:22122
maven
springboot 版本在2.5.6
<dependency>
<groupId>com.luhuiguo</groupId>
<artifactId>fastdfs-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
@SpringBootTest
class SpringbootFastDfsApplicationTests {
@Autowired
private FastFileStorageClient fastFileStorageClient;
/**
* 测试上传文件
* @throws FileNotFoundException
*/
@Test
void contextLoads() throws FileNotFoundException {
File file = new File("C:/Users/Lenovo/Pictures/图片/1.jpg");
StorePath storePath = fastFileStorageClient.uploadFile(null, new FileInputStream(file), file.length(), file.getName());
System.out.println("storePath = " + storePath);
}
/**
* 删除文件
*/
@Test
void delectFile(){
String filePath = "group1/M00/00/00/wKjHgmKPpkmAQ8blAAJsVLk5Eeo5.1.jpg";
fastFileStorageClient.deleteFile(filePath);
}
}