一、FastDFS文件系统简介
搭建FastDFS:
参考地址:
FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
更多关于FastDFS系统的相关知识,请自行查阅。
二、SpringBoot结合FastDFS实现文件上传功能
(1)项目工程目录结构
(2)项目pom.xml配置
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-devtools
true
com.github.tobato
fastdfs-client
1.26.1-RELEASE
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot
2.1.1.RELEASE
(3)FDS配置文件: fdfs_client.conf:
#以下为你搭建的FastDFS系统的配置信息,请自行修改
connect_timeout = 60
network_timeout = 60
charset = UTF-8
http.tracker_http_port = 8080
http.anti_steal_token = no
http.secret_key = 123456
tracker_server = 127.0.0.1:22122
(4)项目部分代码
后台:
(a)FasfDFSClient.java
package com.lhf.springbootfastdfs.fastdfs;
import org.csource.common.NameValuePair;
import org.csource.fastdfs.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.io.*;
/**
* @ClassName: FasfDFSClient
* @Desc: FastDFS客户端
* @Author: liuhefei
* @Date: 2018/12/24 17:33
*/
public class FastDFSClient {
private static Logger logger = LoggerFactory.getLogger(FastDFSClient.class);
//在类加载的时候读取相应的配置信息,并进行初始化。
static{
try{
String filePath = new ClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();
ClientGlobal.in