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
*/
publicResultDatauploadFile(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
*/
publicResultDatauploadFile(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
*/
publicResultDatauploadFileStream(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,SetmetaData){
//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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。