1、pom包配置
我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。
加入了 fastdfs-client-java包,用来调用FastDFS相关的API。
2、配置文件
resources目录下添加 fdfs_client.conf文件
配置文件设置了连接的超时时间,编码格式以及tracker_server地址等信息
3、封装FastDFS上传工具类
封装FastDFSFile,文件基础信息包括文件名、内容、文件类型、作者等。
封装FastDFSClient类,包含常用的上传、下载、删除等方法。
首先在类加载的时候读取相应的配置信息,并进行初始化。
-
static{
-
try{
-
String filePath =newClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();;
-
ClientGlobal.init(filePath);
-
trackerClient =newTrackerClient();
-
trackerServer = trackerClient.getConnection();
-
storageServer = trackerClient.getStoreStorage(trackerServer);
-
}catch(Exception e){
-
logger.error("FastDFS Client Init Fail!",e);
-
}
-
}
文件上传
-
publicstaticString[] upload(FastDFSFile file){
-
logger.info("File Name: "+ file.getName()+"File Length:"+ file.getContent().length);
-
NameValuePair[] meta_list =newNameValuePair[1];
-
meta_list[0]=newNameValuePair("author", file.getAuthor());
-
long startTime =System.currentTimeMillis();
-
String[] uploadResults =null;
-
try{
-
storageClient =newStorageClient(trackerServer, storageServer);
-
uploadResults = storageClient.upload_file(file.getContent(), file.getExt(), meta_list);
-
}catch(IOException e){
-
logger.error("IO Exception when uploadind the file:"+ file.getName(), e);
-
}catch(Exception e){
-
logger.error("Non IO Exception when uploadind the file:"+ file.getName(), e);
-
}
-
logger.info("upload_file time used:"+(System.currentTimeMillis()- startTime)+" ms");
-
if(uploadResults ==null){
-
logger.error("upload file fail, error code:"+ storageClient.getErrorCode());
-
}
-
String groupName = uploadResults[0];
-
String remoteFileName = uploadResults[1];
-
logger.info("upload file successfully!!!"+"group_name:"+ groupName +", remoteFileName:"+" "+ remoteFileName);
-
return uploadResults;
-
}
使用FastDFS提供的客户端storageClient来进行文件上传,最后将上传结果返回。
根据groupName和文件名获取文件信息。
下载文件
删除文件
使用FastDFS时,直接调用FastDFSClient对应的方法即可。
4、编写上传控制类
从MultipartFile中读取文件信息,然后使用FastDFSClient将文件上传到FastDFS集群中。
请求控制,调用上面方法 saveFile()。
上传成功之后,将文件的路径展示到页面,效果图如下:
在浏览器中访问此Url,可以看到成功通过FastDFS展示:
这样使用Spring Boot 集成FastDFS的案例就完成了。
示例代码:https://github.com/ityouknow/spring-boot-examples
Java学习资料获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==