springboot中集成fastDFS 分布式文件存储系统
1、 pom.xml中引入
<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.27.2</version> </dependency>2、 application.yml中配置
spring: application: name: ssdemo servlet: multipart: max-file-size: 20MB max-request-size: 20MB fdfs: so-timeout: 1500 # socket连接超时时间 connect-timeout: 6000 # 连接tracker超时时间 thumb-image: #缩略图生成参数 ,可选 width: 150 height: 150 tracker-list: #TrackerList参数,支持多个 - 192.168.11.41:22122 pool: #从池中借出的对象的最大数目(配置为-1表示不限制) max-total: -1 #获取连接时的最大等待毫秒数,默认值5000 max-wait-millis: 5000 # #每个key最大连接数 max-total-per-key: 50 #每个key对应的连接池最大空闲连接数 max-idle-per-key: 10 #每个key对应的连接池最小空闲连接数 max_idle_per_key: 53、FastDFSConfig.java 配置类
package cn.cbyzs.ssdemo.config; import com.github.tobato.fastdfs.FdfsClientConfig; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableMBeanExport; import org.springframework.context.annotation.Import; import org.springframework.jmx.support.RegistrationPolicy; @Configuration @Import(FdfsClientConfig.class) // 导入FastDFS-Client组件 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING) // 解决jmx重复注册bean的问题 public class FastDFSConfig { }4、Fdfs的上传controller
package cn.cbyzs.ssdemo.other.controller; import cn.cbyzs.ssdemo.common.RetMsg; import cn.cbyzs.ssdemo.common.fastDFS.FastDFSClientUtil; import cn.cbyzs.ssdemo.common.jwt.JwtTokenIgnore; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @RestController @RequestMapping("/fdfs") public class FdfsController { @Autowired private FastDFSClientUtil fastDFSClientUtil; @JwtTokenIgnore @RequestMapping("/upload") public RetMsg upload(@RequestParam(value = "file",required = false) MultipartFile file){ //调用 fdfsClient的上传接口 String path =fastDFSClientUtil.uploadFile(file); return RetMsg.success(path); } }测试上传 ,用postman调用controller层接口,上传一个图片成功
