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>

springboot2.0如何通过fastdfs实现文件分布式上传


@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);
 }
}

springboot2.0如何通过fastdfs实现文件分布式上传

springboot2.0如何通过fastdfs实现文件分布式上传

springboot2.0如何通过fastdfs实现文件分布式上传

springboot2.0如何通过fastdfs实现文件分布式上传

来源: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
  • asp之家 软件编程 m.aspxhome.com