官方:https://github.com/tobato/FastDFS_Client
springboot集成:https://blog.csdn.net/wzl19870309/article/details/74049204

主要接口包括
TrackerClient - TrackerServer接口
GenerateStorageClient - 一般文件存储接口 (StorageServer接口)
FastFileStorageClient - 为方便项目开发集成的简单接口(StorageServer接口)
AppendFileStorageClient - 支持文件续传操作的接口 (StorageServer接口)

<dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>1.27.2</version>
</dependency>

配置文件:

fdfs:connect-timeout: 60000so-timeout: 60000tracker-list: xxxpool:## 连接池最大数量max-total: 200## 每个tracker地址的最大连接数max-total-per-key: 50## 连接耗尽时等待获取连接的最大毫秒数max-wait-millis: 60000web-server-url: xxx
package com.cj.fdfs;import com.github.tobato.fastdfs.domain.conn.FdfsWebServer;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;import java.io.*;
import java.nio.charset.StandardCharsets;@Component
public class FastDFSClient {private final Logger logger = LoggerFactory.getLogger(FastDFSClient.class);@Autowiredprivate FastFileStorageClient storageClient;@Autowiredprivate FdfsWebServer fdfsWebServer;/*** 上传文件* @param file*/public String uploadFile(MultipartFile file) throws IOException {System.out.println(file.getOriginalFilename());StorePath storePath = storageClient.uploadFile(file.getInputStream(), file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()), null);//        FilenameUtilsreturn getResAccessUrl(storePath);}public String uploadFile(File file) throws FileNotFoundException {FileInputStream inputStream = new FileInputStream(file);StorePath storePath = storageClient.uploadFile(inputStream, file.length(), FilenameUtils.getExtension(file.getName()), null);return getResAccessUrl(storePath);}/*** 将一段字符串 生成一个 文件 上传* @param content* @param fileExtension*/public String uploadFile(String content,String fileExtension){byte[] bytes = content.getBytes(StandardCharsets.UTF_8);ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);StorePath storePath = storageClient.uploadFile(inputStream, bytes.length, fileExtension, null);return getResAccessUrl(storePath);}/*** 获取上传后的 url* @param storePath*/public String getResAccessUrl(StorePath storePath){String fileUrl = fdfsWebServer.getWebServerUrl()+ "/" + storePath.getFullPath();return  fileUrl;}/*** 删除文件* @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 (Exception e) {logger.warn(e.getMessage());}}
}

测试:

  @Testvoid contextLoads() throws IOException {Path path = Paths.get("F:\\1.png");File file = new File(path.toUri());MockMultipartFile multipartFile = new MockMultipartFile(file.getName(),file.getName(),null, new FileInputStream(file));String s = fastDFSClient.uploadFile(multipartFile);System.out.println("s = " + s);}

遇到的问题:

  • 怎么模拟一个MultipartFile
    MockMultipartFile
    引用:https://blog.csdn.net/qq_37157160/article/details/104512457

fastdfs-client使用相关推荐

  1. 美多商城之商品(准备商品数据 )、Dockers容器和FastDFS存储

    二.准备商品数据    [这些数据一般保存在第三方云存储服务] 提示: 数据库表有了以后,我们现在需要准备商品信息数据和商品图片数据,以便查询和展示. 商品信息数据:比如商品编号等都是字符串类型的,可 ...

  2. FastDFS分布式文件系统的安装及配置

    由于网站使用nfs共享方式保存用户上传的图片,附件等资料,然后通过apache下载的方式供用户访问,在网站架构初期,使用这种简单的方式实现了静态资源的读写分离,但随着网站数据量的增加,图片服务器渐渐成 ...

  3. Centos7 搭建FastDFS文件管理系统及简单的迁移方法

    1.简介 FastDFS 是一个开源的高性能分布式文件系统(DFS). 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡.主要解决了海量数据存储问题,特别适合以中小文件(建议范围: ...

  4. springboot(十八):使用Spring Boot集成FastDFS

    上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包 ...

  5. FastDFS+Nginx实现文件服务器(转载)

    本文转自:https://www.cnblogs.com/chiangchou/p/fastdfs.html 同时加入自己的见解与修改 目录 一.FastDFS介绍 1.简介 2.FastDFS的存储 ...

  6. 【工具类】分布式文件存储-FastDFS

    FastDFS简介 FastDFS体系结构 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡 ...

  7. 文件服务器高可用群集,fastDFS文件服务器(三):集群和高可用环境篇

    解决两个组轮询存储文件问题 上篇文章中我们搭建了单机版的fastDFS,其中storage有两个group,分别为head和other,我们在测试的时候发现文件每次上传都会到head目录下,如果你希望 ...

  8. linux安装libfastcommon+fastdfs+nginx

    安装依赖包 yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel ope ...

  9. fastDFS分布式文件系统--文件上传/下载/查询完整代码实现

    搭建环境 这里我们使用javaApi测试文件的上传,java版本的fastdfs-client地址在: https://github.com/happyfish100/fastdfs-client-j ...

  10. linux下载安装fastdfs和fastdfs与nginx整合、springboot访问fastdfs

    文章目录 需求分析 分布式文件系统 1 FastDFS安装 FastDFS 和nginx整合 2.整合java访问fastdfs服务 文件上传查询下载测试 整合springboot 需求分析 搭建fa ...

最新文章

  1. rust拆自己家门_非常“掉价”的四大汽车装潢,豪车装上也难看,车主:回去拆了...
  2. 深度学习之图像处理---七级浮屠
  3. OAuth2.0在项目中认证流程介绍
  4. LeetCode题集大全
  5. 【练习】实现一个parse方法(需要实现的效果见内容),方法总结
  6. MTK8127添加一个新的camera驱动
  7. JSF实现文件下载功能
  8. ftp ---- 本地用户登录(实例配置1:)
  9. 帆软动态列之数据集实现动态列
  10. 2020-06-21
  11. sublime批量添加注释
  12. 机器学习- 吴恩达Andrew Ng Week8 知识总结 Dimensionality Reduction
  13. 清华大学计算机音乐,校长杯十强故事汇 || DeepMusic:音乐也能如此“深邃”
  14. 计算机网络管理员二级考试题,计算机网络管理员(二级)操作鉴定试题A
  15. 正宗eMule官方网站导航
  16. matlab 离散求偏导,matlab怎么求离散曲面的偏导数
  17. Java 一步一步教你在控制台打印出菱形
  18. Matlab中写M文件及调用
  19. C++机器学习经典资料
  20. 大型分布式网站架构如何设计

热门文章

  1. 菜鸟VMware安装MX Linux的初次经验总结及镜像快速下载方式
  2. 实例四:switch分支选择——实现阶梯式计算
  3. 树模型系列之XGBoost算法
  4. 网吧服务器维护,一个网吧维护对网吧云机房的看法
  5. 涨知识!java程序设计第二版课后答案雍俊海
  6. <script></script> 、 <script defer ></script> 、 <script async></script> 三者的区别
  7. 使用Python开发测试小工具-录制回放工具的实现
  8. 建筑工地污水处理(建筑工地污水处理设备)
  9. 20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
  10. 各种CPU的ELF编码,ELF并没有为龙芯分配253-256