Spring Boot2 集成FastDFS

[java] spring boot 中配置FastDFS 上传 在本篇中fastdfs的安装就不教了,搜索下就有很多教程!!!首先在pom.xml里加入fastdfs的jar<!-- upload begin --> <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client&lt... 阅读详情

什么是FastDFS?

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

相信大家既然是要整合FastDFS 那应该对它有个基础的认识吧

既然要整合FastDFS那就要安装FastDFS服务,安装FastDFS系统时会配置相应的端口,后续请求文件系统时会用到,具体配置大家百度如何安装配置FastDFS,这里就不介绍如何安装FastDFS服务了。

以下是Spring Boot2 整合FastDFS步骤

1.pom引入相关依赖包

<!--fstdfs client-->
<dependency>
    <groupId>com.github.tobato</groupId>
    <artifactId>fastdfs-client</artifactId>
    <version>1.26.5</version>
</dependency>

2.增加fastdfs相关配置

application.yml中增加属性

fdfs:
  so-timeout: 1501
  connect-timeout: 601
  thumb-image:             #缩略图生成参数
    width: 200
    height: 200
  tracker-list:            #TrackerList参数,支持多个
    - 192.168.1.178:22122

 

3.注入FdfsClientConfig类

@Configuration
@Import(FdfsClientConfig.class)
// 解决jmx重复注册bean的问题
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class ComponetImport {
}

4.编写fastdfs工具类封装相关操作FastdfsClientUtil

package org.guajava.common.utils.fastdfs;

import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.domain.fdfs.ThumbImageConfig;
import com.github.tobato.fastdfs.exception.FdfsUnsupportStorePathException;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.multipart.MultipartFile;
import org.tianshun.common.utils.StringUtils;
import java.io.IOException;
import java.io.InputStream;

/**
 * Fastdfs工具类
 */
@Component
public class FastdfsClientUtil {

   private final Logger logger = LoggerFactory.getLogger(FastdfsClientUtil.class);
   @Autowired
   private FastFileStorageClient storageClient;
   @Autowired
   private ThumbImageConfig thumbImageConfig;


   //上传文件
   public String upload(MultipartFile myfile) throws Exception{
      //文件名
      String originalFilename = myfile.getOriginalFilename().substring(myfile.getOriginalFilename().lastIndexOf(".") + 1);
      // 文件扩展名
      String ext = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());

      StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(myfile.getInputStream(), myfile.getSize(),originalFilename , null);

      String path = storePath.getFullPath();

      return path;
   }
   
   /**
    * 删除文件
    * @Param fileUrl 文件访问地址
    */
   public void deleteFile(String fileUrl) {
      if (StringUtils.isEmpty(fileUrl)) {
         return;
      }
      try {
         StorePath storePath = StorePath.parseFromUrl(fileUrl);
         storageClient.deleteFile(storePath.getGroup(), storePath.getPath());
      } catch (FdfsUnsupportStorePathException e) {
         logger.warn(e.getMessage());
      }
   }
}

5.编写测试类,测试上传图片功能

@RunWith(SpringRunner.class)
//classes =后面的类是 SpringBoot 启动类的类名,需要更改成你实际SpringBoot启动类的类名
@SpringBootTest(classes = TestApplication.class)
public class FdfsTest {

    @Autowired
    private FastdfsClientUtil fastdfsClientUtil;


    @Test
    public void testUpload() throws FileNotFoundException {
        File file = new File("D:\\123.jpg");

        System.out.println(fastdfsClientUtil.upload(file));
    }
}

可以看到后台会输出图片的路径

访问地址

http://192.168.111.130:8888/group1/M00/00/00/wKhvglu4_TqAadEtAABs63TOJBQ567.jpg

图片显示出来。

 

SpringBoot2.x系列教程(六十一)Spring Boot集成FastDFS实现文件上传 针对有比较多的视频、图片或文件的网站,文件上传和存储是必不可少的。 在《文件管理系统FastDFS原理详解》一文中介绍了FastDFS相关的原理。在《FastDFS基于Docker安装,免踩坑版》一文中介绍了基于Docker的安装。 这篇文章带领大家来基于Spring Boot集成FastDFS,并实现上传和访问的功能。 客户端 FastDFS官方提供了一个Java版本的客户端,地址为:https://github.com/happyfish100/fastdfs-client-java 但该客户端有几个问 阅读详情

相关推荐

【BUAA】【计组】计算机组成 pre (含详细解析)

BUAA 计算机组成 本文章旨在为@走肖暂时无法接通的系列文章创造一个目录,收藏本文章,方便查阅! 1. 入门测试 2. 基础知识 3. Logisim   欢迎来到 Logisim 的世界   Logisim 门电路   Logisim 组合电路   Logisim 时序电路   Logisim 仿真与调试   应用与挑战 4. Verilog 与仿真工具   前言   ISE 入门   VCS 入门   Verilog 语法   Verilog 题目实例与分析   Verilog 工程的设计开发调试

Schrodinger007的博客 9809

springboot 2.1 实践教程(二十二)-整合FastDFS方式(二),基于tobato的fastdfs_client

fastdfs_client开源项目的作者是tobato, 项目地址:https://github.com/tobato/FastDFS_Client 它是一个针对fastDFS的java客户端第三方组件,在原作者YuQing与yuqih发布的java客户端基础上进行了大量重构工作,对于开发者而言

路人甲的专栏 1712

VMware + ubuntu20.04 + qemu安装

遇到报错可参考:(从ubuntu裸系统开始安装)

NosONE 3230

FastDFS分布式文件存储

FastDFS分布式文件存储 1.pom.xml依赖 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.7</version> <exclusions> <exclusion>

qq_50990903的博客 296

深入解析Cuk、Zeta和Sepic拓扑:非隔离型开关电源的设计奥秘

本文深入解析了Cuk、Zeta和Sepic三种非隔离型开关电源拓扑的设计奥秘。它们均能实现升降压转换,但特性各异:Cuk拓扑输出反向电压,输入输出纹波极低;Sepic拓扑输出同极性电压,应用广泛;Zeta拓扑输出纹波小,适合精密供电。文章详细对比了其电路结构、工作原理、核心公式及选型指南,帮助工程师根据输入电压范围、输出极性及纹波要求,灵活选择最合适的拓扑方案。

weixin_28308325的博客 476

CocosCreator3.8实战指南:动态字体与位图字体性能优化技巧

本文深入解析CocosCreator3.8中系统字体、动态字体(TTF)与位图字体(FNT)的核心差异与性能表现。针对动态字体运行时解析开销大、内存占用高的痛点,提供了字体子集化、共享资源等优化技巧;同时详细介绍了位图字体制作流程及其在渲染速度、内存可控性上的绝对优势,并给出跨平台场景下的字体选型与优化策略,帮助开发者有效提升游戏性能。

weixin_29006701的博客 563

com.github.tobato.fastdfs.exception.FdfsIOException: 客户端连接服务端出现了io异常:socket io exception occured whi

使用FastDFS上传图片报错。 情景,在使用mavon-editor富文本连续上传多张图片,后端使用FastDFS保存文件,出现一张上传成功,一张上传失败的显现。并且后端报错: com.github.tobato.fastdfs.exception.FdfsIOException: 客户端连接服务端出现了io异常:socket io exception occured while receive content at com.github.tobato.fastdfs.proto.Abstract

weixin_44685751的博客 5312

从PX4的FRD到Mavros的FLU:手把手教你正确配置`setpoint_raw/local`话题发布无人机目标点

本文详细解析了PX4的FRD与Mavros的FLU坐标系转换问题,手把手教你正确配置`setpoint_raw/local`话题发布无人机目标点。通过实战指南和常见错误排查,帮助开发者避免方向错乱问题,提升无人机控制精度。

weixin_33712987的博客 422

Docker+FastDFS+SpringBoot 快速搭建分布式文件服务器

作者:kalibiubiubiu blog.csdn.net/qq_37759106/article/details/82981023首先说一下从零开始自己去搭一个fastdfs有多...

Java知音 962

KAN神经网络实战:如何用Python快速搭建你的第一个可解释性模型

本文提供了使用Python和PyTorch快速搭建首个KAN(Kolmogorov-Arnold Networks)神经网络模型的实战指南。通过对比传统MLP,详细解析了KAN利用可学习的边函数实现更高可解释性的核心原理,并逐步演示了从环境配置、数据准备、核心模块实现到模型训练与可视化的完整流程,帮助开发者掌握这一新兴的可解释性AI模型构建方法。

convnet3designer的博客 472

股票价格预测的秘密武器:用C#实现蒙特卡洛路径模拟,轻松掌握市场波动规律!

摘要: 蒙特卡洛模拟是股票预测的有效工具,通过随机抽样模拟价格路径,克服传统技术分析的局限性。其核心模型是几何布朗运动(GBM),描述股价随机变化过程。C#实现的关键步骤包括:1)获取输入参数;2)生成随机数路径;3)分析结果。该方法不预测具体价格,而是提供可能的价格范围,帮助投资者评估风险。代码结构清晰,分为输入、模拟、分析和可视化四个模块,通过参数封装提高可读性,适用于不确定市场的概率预测。

墨夶的博客 600

com.github.tobato.fastdfs.exception.FdfsConnectException:

com.github.tobato.fastdfs.exception.FdfsConnectException

weixin_44860141的博客 1559

打脸来的太快了,又发现一个Trae的宝藏功能--内置浏览器可以指定机型来显示前端界面

今天给大家分享一个Trae的实用功能,就是SOLO模式下内置浏览器可以指定不同的手机、平板机型来查看前端页面显示效果,我感觉这个功能很棒,忍不住就跟大家分享一下。

cpp加油站的专栏 6564

spring boot 2.0 与FASTDFS进行整合

只支持在spring-boot 2.0以及以上版本中使用 1.pom.xml 里引入FASTDFS的依赖,toobato与fastdfs作者一起,将fastdfs的功能进行了重构与简化 <!-- 高性能分布式文件服务器 --> <dependency> <groupId>com.github.tobato</groupId> ...

weixin_30415801的博客 110

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Rufus启动U盘制作完整教程:4个场景、2张对照表,GPT/MBR与UEFI/BIOS一次选对

Rufus 是一款免费、免安装的启动U盘制作与USB格式化工具,双击即可运行,无需配置。无论你是给新电脑装 Windows 11、在老机器上绕过 TPM 限制、制作 Linux 启动盘,还是只想校验镜像的哈希值,它都能覆盖。本文按场景推进,把备份、选型、写入、校验串成一条线,照着走一遍就能做出可用的启动盘。 ## 先对号入座:你属于哪种场景 动手前先判断自己属于哪一类,后面按图索骥即可: -

gitblog_00570的博客 235

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

3步搞定经典开始菜单:Open-Shell-Menu完整配置指南

从 Win7 升到 Win11 后,找程序要翻一层层磁贴菜单,搜索框还总不听话。我花了不少时间找到的工具就是 Open-Shell-Menu——一款免费的经典开始菜单还原工具。装上后配了十分钟,熟悉的双列菜单就回来了,操作习惯不用再迁就系统。 ## 项目全景速览 Open-Shell-Menu 是原 Classic Shell 的社区续作,能力拆解如下: | 能力 | 帮你做什么 | |--

gitblog_00998的博客 343

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SpringBoot2.0整合Fastdfs

1.引入FastDfs依赖 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.2</version> </dependency>...

AAAhxz的博客 266

springboot2.x整合fastDfs

如果需要自己搭建文件服务器请移步:fastDfs安装配置教程 springboot整合fastDfs pom.xml添加配置 <!-- https://mvnrepository.com/artifact/com.github.tobato/fastdfs-client --> <dependency> <g...

han949417140的博客 1185

FastDFS-Spring Boot 集成 FastDFS

FastDFS-Spring Boot 集成 FastDFS详细代码举例

weixin_45226668的博客 734

Spring Boot 3.x集成FastDFS记录

最近在做一个课程,需要用讲一下SpringBoot 使用文件上传的功能,选择了FastDFS作为文件存储OSS。Spring Boot是最新的3.3.0版本,JDK版本是17,中间有一些坑,下面记录一下。

东皋长歌的专栏 1932

使用SpringBoot集成FastDFS

使用SpringBoot集成FastDFS

YIYIYI 3740

Spring Boot:使用 Spring Boot 集成 FastDFS

如何使用Spring Boot将文件上传到分布式文件系统FastDFS中。 这个项目会在上一个项目的基础上进行构建。 1、pom 包配置 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId...

heima201907的博客 525

Spring Boot 图片上传-fastdfs

分布式文件系统 分布式文件系统选型 方案1:购买服务 七牛云,阿里云对象存储,腾讯云对象存储等等。。。。。 数据量少的时候可以使用 方案2:自己搭建 选择一个分布式的文件系统软件 fastdfs hdfs等 数据量大的时候使用 Fastdfs是什么 FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 F

weixin_51216079的博客 104万+

Spring Boot简单集成fastDFS

FastDFS是一个开源的轻量级分布式文件系统,它解决了大容量存储和负载均衡的问题。FastDFS架构包括Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,Tracker server负责负载均衡和调度,最终由Storage server完成文件上传和下载。

weixin_43833540的博客 842

Spring Boot整合FastDFS完整示例

SpringBoot整合FastDFS很简单,这里使用的组件是: <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.2</version> &lt...

Qiwan的博客 4095
上一篇: CentOS7安装JDK8、MySql5.7、Tomcat7
下一篇: Spring Boot2.0 整合Redis实例
不善^
博客等级 码龄18年 635粉丝 235原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值