SpringBoot集成FastDFS的配合
最近做的项目需要把相关的录音文件上传到FastDFS服务器,因为之前没有做过,所以都是在网上找一些资源做参考,最后经过调试,终于可以上传成功了,接下来我来和大家分享我写的相关代码,其他就不讲解了,希望能做到大家参考着也能配置成功,在项目中使用:
1、首先添加maven的依赖
<dependency><groupId>net.oschina.zcx7878</groupId><artifactId>fastdfs-client-java</artifactId><version>1.27.0.0</version></dependency>
2、添加配置文件:
文件内容:
fastdfs.connect_timeout_in_seconds=30fastdfs.network_timeout_in_seconds=60fastdfs.charset=UTF-8fastdfs.http_tracker_http_port=8888fastdfs.tracker_servers=127.0.01:22122
3、程序读取:
首先yml配置相关的配置项:
fdfs:trackerweb: http://127.0.0.1:8888/storage:serverip: 127.0.0.2serveripport: 23000storagepath: 0env: -testconfigFile: /data/fdfs_client-test.properties
然后添加相关的配置类:
@Configuration
@Slf4j
public class FastDFSConfig {@Value("${fdfs.storage.serverip}")private String storageServerIp;@Value("${fdfs.storage.serveripport}")private Integer storageServerPort;@Value("${fdfs.storage.storagepath}")private Integer storageServerPath;@Value("${fdfs.env}")private String env;@Value("${fdfs.configFile}")private String configFile;private TrackerClient trackerClient = null;private TrackerServer trackerServer = null;private StorageServer storageServer = null;private StorageClient1 storageClient = null;@PostConstructpublic void init() throws Exception {
// String path = "fdfs_client" + env + ".properties";
// Resource resource = new ClassPathResource(path);
// String conf = resource.getFile().getCanonicalPath();
// ClientGlobal.init(conf);Properties properties = new Properties();Resource resource = new FileSystemResource(configFile);properties.load(resource.getInputStream());ClientGlobal.initByProperties(properties);trackerClient = new TrackerClient();trackerServer = trackerClient.getConnection();storageServer = new StorageServer(storageServerIp,storageServerPort,storageServerPath);storageClient = new StorageClient1(trackerServer, storageServer);log.info("------ FastDFS配置加载完毕 ------");}@Beanpublic StorageClient storageClient(){return storageClient;}
}
其中加载配置文件分环境和读取文件系统两种方式,项目是springboot,我采用读取文件系统的方式读取配置文件,根据不同的项目架构来调整;
4、程序中来调用:
@Service
@Slf4j
public class FastDfsService {@Resourceprivate StorageClient1 storageClient;/*** 上传文件* @return*/public String uplaodFile(String hlFileUrl) {log.info(" ------ 语音文件路径:【{}】,执行上传操作 ------",hlFileUrl);String fileName = FilenameUtils.getName(hlFileUrl);String extensionName = FilenameUtils.getExtension(hlFileUrl);log.info(" ------ 语音文件名称:【{}】, 后缀名称:【{}】 ------",fileName,extensionName);InputStream inputStream = null;try {URL url = new URL(hlFileUrl);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true);conn.setRequestMethod("GET");inputStream = conn.getInputStream();byte[] fileContent = IOUtils.toByteArray(inputStream);String fastFullPath = storageClient.upload_file1(fileContent,extensionName,null);// String fastFullPath = null;log.info(" ------ 语音文件:【{}】,上传FastDfs路径:【{}】 ------",fileName,fastFullPath);log.info(" ------ 语音文件:【{}】,上传成功 ------",fileName);return fastFullPath;}catch (Exception e){e.printStackTrace();log.info(" ------ 语音文件:【{}】,上传fastDfs异常:{} ------",fileName,e);}finally {try {if (inputStream != null){inputStream.close();}}catch (IOException e){}}return null;}}
这样就完成了相关的上传功能,还有其他的一些下载删除等,可以到网上搜索相关的API,本文不做更多的代码分享,希望我的内容给大家一些思路。
SpringBoot集成FastDFS的配合相关推荐
- SpringBoot集成FastDFS
FastDFS是一款高性能的分布式文件系统.主要功能包括:文件存储,文件同步,文件访问(上传下载).它可以解决高容量和负载均衡的问题.FastDFS适合用来做文件相关的网站,如图片分享.视频分享等. ...
- SpringBoot集成FastDFS依赖实现文件上传
前言 对FastDFS文件系统安装后的使用. FastDFS的安装请参考这篇:https://www.cnblogs.com/niceyoo/p/13511082.html 本文环境:IDEA + J ...
- springboot(十八):使用Spring Boot集成FastDFS
上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包 ...
- (转)Spring Boot(十八):使用 Spring Boot 集成 FastDFS
http://www.ityouknow.com/springboot/2018/01/16/spring-boot-fastdfs.html 上篇文章介绍了如何使用 Spring Boot 上传文件 ...
- SpringBoot集成Druid和数据库密码加密
Druid是阿里开发的数据库连接池,通过简单的配置,可以实现数据库的连接,性能特别强大,可以在页面访问,包括监控数据库性能参数,慢SQL统计,当然还包括数据库连接等. 今天主要记录一下SpringBo ...
- Elasticsearch-Sql+Mybatis+SpringBoot集成
Elasticsearch-Sql+Mybatis+SpringBoot集成 本文介绍了springboot如何集成elasticsearch-sql+mybatis rest方式使用es-sql J ...
- spring、springboot集成 log4j日志、log4j2日志以及slf4j
1.查看pringboot自带的日志框架 新建一个springboot 工程,查看依赖树 通过查看依赖树可以发现,springboot自带被loggong管理的log4j .logback等日志相关的 ...
- SpringBoot集成Redis并使用Knife4j测试
SpringBoot集成Redis并使用Knife4j测试 基于若依的ruoyi-vue前后端分离版本,若依官网:http://www.ruoyi.vip/ 项目目录结构 项目的目录结构如下: 1.新 ...
- SpringBoot 集成 Caffeine(咖啡因)最优秀的本地缓存
SpringBoot 集成 Caffeine(咖啡因)最优秀的本地缓存 本地缓存 为什么用Caffeine做本地缓存 SpringBoot2.0+如何集成 Caffeine 引入依赖 开启缓存 容器配 ...
最新文章
- pandas使用sort_values函数对dataframe的日期数据列进行排序(设置ascending参数进行正序或者倒序排序)
- Git提交到多个远程仓库(多看两个文档)
- 在命令行窗口查看Maven版本时,出现 Error: JAVA_HOME is set to an invalid directory.的解决方法
- Linux驱动程序开发 - 设备IO
- modelsim仿真正确FPGA运行不正确的可能原因 - cm4写寄存器错
- 真实实验测试多少节电池可以点亮白炽灯泡!
- 拜托!不要再问我是否了解多线程了好吗
- java jar包中MANIFEST.MF中有版本信息
- Bash:把粘贴板上的内容拷贝的文件中。(脚本)
- 算法导论读书笔记(8)
- [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗?
- java工程mvn引用jar_maven 项目加载本地JAR
- zabbix服务器搭建
- macOS 上使用 lightgbm 遇到的坑及解决方法
- PHP基础知识之文件加载
- vscodemaven 配置_vscode配置maven的settings.json
- KVM通过qemu实现USB重定向
- 洛谷P3768 简单的数学题
- 如何使新浪播放器自动播放_七夕小子_新浪博客
- mysql中获取时间的年月日_Mysql获取系统时间,年,月,日
热门文章
- 《那些年啊,那些事——一个程序员的奋斗史》——75
- 互联网江湖录2——南少林盛大
- 回调地狱以及解决回调地狱 - promise嵌套变链接 - 解决终极办法 - async 和 await
- 编写一个python程序用来计算投资回收期_智慧职教云课堂Python程序设计基础(九江职业技术学院)题目答案...
- 一张Java常用单词表!Java So Easy!
- 宋鹏:微媒体联盟微信营销成功案例
- 移动CRM风起云涌 千亿级市场显现
- File类中的listFiles()方法
- 调用阿里大于发送短信验证码的限制次数
- android蓝牙模块有哪些类型,蓝牙串口模块是什么?怎么用?有哪些种类?