springboot2.0如何通过fastdfs实现文件分布式上传
作者:if年少有为 时间:2022-03-20 16:49:24
这篇文章主要介绍了springboot2.0如何通过fastdfs实现文件分布式上传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1. 引入依赖
在父工程中,我们已经管理了依赖,版本为:
<fastDFS.client.version>1.26.7</fastDFS.client.version>
因此,这里我们直接在工程的pom.xml中引入坐标即可:
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
</dependency>
@Configuration
@Import(FdfsClientConfig.class)
// 解决jmx重复注册bean的问题
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class FastClientImporter {
}
2. 在application.yml文件中编写FastDFS属性
fdfs:
so-timeout: 1501 # 超时时间
connect-timeout: 601 # 连接超时时间
thumb-image: # 缩略图
width: 60
height: 60
tracker-list: # tracker地址:你的虚拟机服务器地址+端口(默认是22122)
- 192.168.0.22:22122
3. 测试
package com.leyou.upload.test;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.domain.fdfs.ThumbImageConfig;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/**
* @author john
* @date 2019/12/6 - 15:09
*/
@SpringBootTest
@RunWith(SpringRunner.class)
public class FastDFSTest {
@Autowired
private FastFileStorageClient storageClient;
@Autowired
private ThumbImageConfig thumbImageConfig;
@Test
public void testUpload() throws FileNotFoundException {
// 要上传的文件
File file = new File("D:\\imooc\\project\\images\\1.jpg");
// 上传并保存图片,参数:1-上传的文件流 2-文件的大小 3-文件的后缀 4-可以不管他
StorePath storePath = this.storageClient.uploadFile(
new FileInputStream(file), file.length(), "jpg", null);
// 带分组的路径
System.out.println(storePath.getFullPath());
// 不带分组的路径
System.out.println(storePath.getPath());
}
@Test
public void testUploadAndCreateThumb() throws FileNotFoundException {
File file = new File("D:\\imooc\\project\\images\\2.jpg");
// 上传并且生成缩略图
StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(
new FileInputStream(file), file.length(), "png", null);
// 带分组的路径
System.out.println(storePath.getFullPath());
// 不带分组的路径
System.out.println(storePath.getPath());
// 获取缩略图路径
String path = thumbImageConfig.getThumbImagePath(storePath.getPath());
System.out.println(path);
}
}
来源:https://www.cnblogs.com/ifme/p/11997630.html
标签:springboot,fastdfs,文件,分布式,上传
0
投稿
猜你喜欢
C#利用异或算法实现加密解密
2022-08-15 14:48:51
spring cloud整合ribbon问题及解决方案
2023-07-25 04:24:49
Java线程通信之wait-notify通信方式详解
2022-05-17 19:35:46
Java创建随机数的四种方式总结
2022-05-11 10:29:17
Java的Struts框架中Action的编写与拦截器的使用方法
2021-11-22 02:58:53
浅谈JVM之使用JFR解决内存泄露
2022-10-19 01:55:30
Android支付宝支付的示例代码
2022-06-20 02:32:49
Spring boot + mybatis + orcale实现步骤实例代码讲解
2023-07-11 22:50:09
Spring Boot整合mybatis并自动生成mapper和实体实例解析
2022-01-28 20:00:02
MyEclipse去除网上复制下来的代码带有的行号(正则去除行号)
2023-09-15 21:59:23
Java byte数组操纵方式代码实例解析
2022-02-18 16:54:12
使用SpringBoot配置https(SSL证书)
2022-04-03 19:37:00
Java调用wsdl接口的两种方法(axis和wsimport)
2023-06-23 14:41:22
解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题
2023-11-28 20:53:42
Android之listfragment的使用例子
2021-05-31 02:10:19
Android自定义可循环的滚动选择器CycleWheelView
2023-04-06 00:43:16
深入解析C#中的泛型类与泛型接口
2023-04-30 02:35:39
OpenCV实现直线检测并消除
2023-07-12 20:44:36
Mybatis Select Count(*)的返回值类型介绍
2022-06-17 12:51:19
IDEA java出现无效的源发行版14解决方案
2021-06-25 08:50:33