springboot集成fastDfs过程代码实例
这篇文章主要介绍了springboot集成fastDfs过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
pom.xml引入依赖
com.github.tobato fastdfs-client 1.26.1-RELEASE
application.properties配置
#fastDfs配置 fdfs.connect-timeout=600 fdfs.so-timeout=1500 fdfs.trackerList=192.168.1.207:22122 fdfs.thumbImage.height=150 fdfs.thumbImage.width=150 spring.jmx.enabled=false fdfs.pool.max-total=200 storage.resHost=http://192.168.1.207/ storage.resPort=8888
DfsAutoConfig.java自动注入
@Configuration @Import(FdfsClientConfig.class) @EnableMBeanExport(registration=RegistrationPolicy.IGNORE_EXISTING) publicclassDfsAutoConfig{ }
DfsResConfig配置映射关系
@Data @Component @ConfigurationProperties("storage") publicclassDfsResConfig{ privateStringresHost; privateStringresPort; }F
FastDfsClientUtil工具类
@Slf4j @Component publicclassFastDfsClientUtil{ @Autowired privateFastFileStorageClientstorageClient; /** *@AuthorAlanMa *@DescriptionMultipartFile类型的文件上传ַ *@Date2019/11/12 *@Param[file] *@returncom.hiynn.data.visual.file.vo.ResultData*/ publicResultData uploadFile(MultipartFilefile){ try{ StorePathpath=storageClient.uploadFile(file.getInputStream(),file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()),null); returnResultDataUtil.setSuccessResult(path.getFullPath()); }catch(Exceptione){ e.printStackTrace(); returnResultDataUtil.setFailedResult(); } } /** *@AuthorAlanMa *@Description普通的文件上传 *@Date2019/11/12 *@Param[file] *@returncom.hiynn.data.visual.file.vo.ResultData */ publicResultData uploadFile(Filefile){ try{ FileInputStreaminputStream=newFileInputStream(file); StorePathpath=storageClient.uploadFile(inputStream,file.length(), FilenameUtils.getExtension(file.getName()),null); returnResultDataUtil.setSuccessResult(path.getFullPath()); }catch(Exceptione){ e.printStackTrace(); returnResultDataUtil.setFailedResult(); } } /** *@AuthorAlanMa *@Description带输入流形式的文件上传 *@Date2019/11/12 *@Param[is,size,fileName] *@returncom.hiynn.data.visual.file.vo.ResultData */ publicResultData uploadFileStream(InputStreamis,longsize,StringfileName){ StorePathpath=storageClient.uploadFile(is,size,fileName,null); returnResultDataUtil.setSuccessResult(path.getFullPath()); } /** *@AuthorAlanMa *@Description将一段文本文件写到fastdfs的服务器上 *@Date2019/11/12 *@Param[content,fileExtension] *@returnjava.lang.String */ publicStringuploadFile(Stringcontent,StringfileExtension){ byte[]buff=content.getBytes(Charset.forName("UTF-8")); ByteArrayInputStreamstream=newByteArrayInputStream(buff); StorePathpath=storageClient.uploadFile(stream,buff.length,fileExtension,null); returnpath.getFullPath(); } /** *@AuthorAlanMa *@Description删除文件 *@Date2019/11/12 *@Param[fileUrl] *@returncom.hiynn.data.visual.file.vo.ResultData */ publicResultDatadeleteFile(StringfileUrl){ if(StringUtils.isEmpty(fileUrl)){ returnResultDataUtil.setFailedResult(); } try{ StorePathstorePath=StorePath.praseFromUrl(fileUrl); storageClient.deleteFile(storePath.getGroup(),storePath.getPath()); returnResultDataUtil.setSuccessResult(); }catch(FdfsUnsupportStorePathExceptione){ e.printStackTrace(); log.warn(e.getMessage()); returnResultDataUtil.setFailedResult(); } } // ///** //*@AuthorAlanMa //*@Description上传文件图片 //*@Date2019/11/12 //*@Param[is,size,fileExtName,metaData] //*@returnjava.lang.String //*/ //publicStringupfileImage(InputStreamis,longsize,StringfileExtName,Set metaData){ //StorePathpath=storageClient.uploadImageAndCrtThumbImage(is,size,fileExtName,metaData); //returnpath.getFullPath(); //} }
测试
@Slf4j @RestController @RequestMapping("/dfs") publicclassFileDfsControllerextendsBaseController{ @Autowired privateFastDfsClientUtilfastDfsClientUtil; @Autowired privateDfsResConfigdfsResConfig; @PostMapping("/single") publicResultDatasingleUpload(@RequestParam("file")MultipartFilefile){ ResultDataresultData=fastDfsClientUtil.uploadFile(file); if(Objects.equals(ResultEnum.SUCCESS.getCode(),resultData.getCode())){ Stringurl=String.format("%s:%s/%s",dfsResConfig.getResHost(),dfsResConfig.getResPort(),resultData.getData()); returnResultDataUtil.setSuccessResult(url); } returnresultData; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。