使用Spring Boot集成FastDFS

1、pom包配置

我们使用Spring Boot最新版本1.5.9、jdk使用1.8、tomcat8.0。

使用Spring Boot集成FastDFS_第1张图片

Java

加入了 fastdfs-client-java包,用来调用FastDFS相关的API。

2、配置文件

resources目录下添加 fdfs_client.conf文件

使用Spring Boot集成FastDFS_第2张图片

Java

配置文件设置了连接的超时时间,编码格式以及tracker_server地址等信息

3、封装FastDFS上传工具类

封装FastDFSFile,文件基础信息包括文件名、内容、文件类型、作者等。

使用Spring Boot集成FastDFS_第3张图片

Java

封装FastDFSClient类,包含常用的上传、下载、删除等方法。

首先在类加载的时候读取相应的配置信息,并进行初始化。

  1. static{

  2. try{

  3. String filePath =newClassPathResource("fdfs_client.conf").getFile().getAbsolutePath();;

  4. ClientGlobal.init(filePath);

  5. trackerClient =newTrackerClient();

  6. trackerServer = trackerClient.getConnection();

  7. storageServer = trackerClient.getStoreStorage(trackerServer);

  8. }catch(Exception e){

  9. logger.error("FastDFS Client Init Fail!",e);

  10. }

  11. }

文件上传

  1. publicstaticString[] upload(FastDFSFile file){

  2. logger.info("File Name: "+ file.getName()+"File Length:"+ file.getContent().length);

  3. NameValuePair[] meta_list =newNameValuePair[1];

  4. meta_list[0]=newNameValuePair("author", file.getAuthor());

  5. long startTime =System.currentTimeMillis();

  6. String[] uploadResults =null;

  7. try{

  8. storageClient =newStorageClient(trackerServer, storageServer);

  9. uploadResults = storageClient.upload_file(file.getContent(), file.getExt(), meta_list);

  10. }catch(IOException e){

  11. logger.error("IO Exception when uploadind the file:"+ file.getName(), e);

  12. }catch(Exception e){

  13. logger.error("Non IO Exception when uploadind the file:"+ file.getName(), e);

  14. }

  15. logger.info("upload_file time used:"+(System.currentTimeMillis()- startTime)+" ms");

  16. if(uploadResults ==null){

  17. logger.error("upload file fail, error code:"+ storageClient.getErrorCode());

  18. }

  19. String groupName = uploadResults[0];

  20. String remoteFileName = uploadResults[1];

  21. logger.info("upload file successfully!!!"+"group_name:"+ groupName +", remoteFileName:"+" "+ remoteFileName);

  22. return uploadResults;

  23. }

使用FastDFS提供的客户端storageClient来进行文件上传,最后将上传结果返回。

根据groupName和文件名获取文件信息。

使用Spring Boot集成FastDFS_第4张图片

Java

下载文件

使用Spring Boot集成FastDFS_第5张图片

Java

删除文件

使用Spring Boot集成FastDFS_第6张图片

Java

使用FastDFS时,直接调用FastDFSClient对应的方法即可。

4、编写上传控制类

从MultipartFile中读取文件信息,然后使用FastDFSClient将文件上传到FastDFS集群中。

使用Spring Boot集成FastDFS_第7张图片

Java

请求控制,调用上面方法 saveFile()。

使用Spring Boot集成FastDFS_第8张图片

Java

上传成功之后,将文件的路径展示到页面,效果图如下:

使用Spring Boot集成FastDFS_第9张图片

Java

在浏览器中访问此Url,可以看到成功通过FastDFS展示:

使用Spring Boot集成FastDFS_第10张图片

Java

这样使用Spring Boot 集成FastDFS的案例就完成了。

示例代码:https://github.com/ityouknow/spring-boot-examples

Java学习资料获取(复制下段连接至浏览器即可)

data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==

你可能感兴趣的:(java)