上篇文章介绍了如何使用 Spring Boot 上传文件,这篇文章我们介绍如何使用 Spring Boot 将文件上传到分布式文件系统 FastDFS 中。
这个项目会在上一个项目的基础上进行构建。
1、pom 包配置
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27-SNAPSHOT</version>
</dependency>
加入了fastdfs-client-java包,用来调用 FastDFS 相关的 API。
2、配置文件
resources 目录下添加fdfs_client.conf文件
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 = 192.168.53.85:22122
tracker_server = 192.168.53.86:22122
配置文件设置了连接的超时时间,编码格式以及 tracker_server 地址等信息
详细内容参考:fastdfs-client-java
3、封装 FastDFS 上传工具类
封装FastDFSFile,文件基础信息包括文件名、内容、文件类型、作者等。
public class FastDFSFile {
private String name;
private byte[] content;
private String ext;
private String md5;
private String author;
//省略getter、setter
}
封装 FastDFSClient 类,包含常用的上传、下载、删除等方法。
首先在类加载的时候读取相应的配置信息,并进行初始化。
static {
try {
String filePath = new ClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();;
ClientGlobal.init(filePath);
trackerClient = new TrackerClient();
trackerServer = trackerClient.getConnection();
storageServer = trackerClient.getStoreStorage(trackerServer);
} catch (Exception e) {
logger.error("FastDFS Client Init Fail!",e);
}
}
文件上传</