1、pom包配置
我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。
Java
加入了 fastdfs-client-java包,用来调用FastDFS相关的API。
2、配置文件
resources目录下添加 fdfs_client.conf文件
Java
配置文件设置了连接的超时时间,编码格式以及tracker_server地址等信息
3、封装FastDFS上传工具类
封装FastDFSFile,文件基础信息包括文件名、内容、文件类型、作者等。
Java
封装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和文件名获取文件信息。
Java
下载文件
Java
删除文件
Java
使用FastDFS时,直接调用FastDFSClient对应的方法即可。
4、编写上传控制类
从MultipartFile中读取文件信息,然后使用FastDFSClient将文件上传到FastDFS集群中。
Java
请求控制,调用上面方法 saveFile()。
Java
上传成功之后,将文件的路径展示到页面,效果图如下:
Java
在浏览器中访问此Url,可以看到成功通过FastDFS展示:
Java
这样使用Spring Boot 集成FastDFS的案例就完成了。
示例代码:https://github.com/ityouknow/spring-boot-examples
Java学习资料获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==