神即道 道法自然 如来

淘宝FastDFS_Client

Github:https://github.com/tobato/FastDFS_Client

FastDFS-Client 1.25.4-RELEASE(2017-06-14)

This is a java client lib for FastDFS.

介绍

在原作者YuQing与yuqih发布的java客户端基础上进行了大量重构工作,便于Java工作者学习与阅读。

当前客户端单元测试全部通过,服务端版本是FastDFS_V5.07

主要特性

  1. 对关键部分代码加入了单元测试,便于理解与服务端的接口交易,提高接口质量
  2. 将以前对byte硬解析风格重构为使用 对象+注解 的形式,尽量增强了代码的可读性
  3. 支持对服务端的连接池管理(commons-pool2)
  4. 支持上传图片时候检查图片格式,并且自动生成缩略图

运行环境要求

由于笔者主要工作环境是SpringBoot,因此目前客户端主要依赖于SpringBoot

  • JDK环境要求 1.7
  • FastDFS服务端 5.07 测试通过

单元测试

由于工作时间关系与解析原代码的复杂性,单元测试无法完全做到脱离FastDFS服务端,请见谅。

执行单元测试需要配置TestConstants文件当中参数

在Tracker与Storage都在一个机器的环境下

在Tracker与Storage不在一个机器的环境下

FastDFS-Client使用方式

1.在项目Pom当中加入依赖
Maven依赖为

2.将Fdfs配置引入项目
将FastDFS-Client客户端引入本地化项目的方式非常简单,在SpringBoot项目/src/[com.xxx.主目录]/conf当中配置

对的,只需要一行注解 @Import(FdfsClientConfig.class)就可以拥有带有连接池的FastDFS Java客户端了。

注意:@EnableMBeanExport解决问题JMX重复注册问题,issue #8 issue #18,不要再配置 spring.jmx.enabled=false,以免影响SpringBoot默认的JMX监控。

3.在application.yml当中配置Fdfs相关参数

如果有必要可以参考 apache.pool2 参数配置连接池属性

4.使用接口服务对Fdfs服务端进行操作
主要接口包括

  1. TrackerClient – TrackerServer接口
  2. GenerateStorageClient – 一般文件存储接口 (StorageServer接口)
  3. FastFileStorageClient – 为方便项目开发集成的简单接口(StorageServer接口)
  4. AppendFileStorageClient – 支持文件续传操作的接口 (StorageServer接口)
点赞