软件编程
位置:首页>> 软件编程>> java编程>> springboot2.0如何通过fastdfs实现文件分布式上传

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

作者:if年少有为  发布时间:2022-03-20 16:49:24 

标签:springboot,fastdfs,文件,分布式,上传

这篇文章主要介绍了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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com