2024年【FastDFS】如何整合FastDFS到项目中?其实很简单!!,Java开发岗还不会这些问题

最后

每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。

如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

我们在IDEA中创建一个Maven项目,并在pom.xml文件中引入SpringBoot相关依赖和我们自己编译的FastDFS的Java客户端。最终,pom.xml文件的依赖如下所示。

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<skip_maven_deploy>false</skip_maven_deploy>

<java.version>1.8</java.version>

<logback.version>1.1.7</logback.version>

<slf4j.version>1.7.21</slf4j.version>

<common.logging>1.2</common.logging>

<fastjson.version>1.2.51</fastjson.version>

<fastdfs.client.version>1.29</fastdfs.client.version>

org.springframework.boot

spring-boot-starter-parent

2.2.6.RELEASE

org.springframework.boot

spring-boot-starter-test

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-tomcat

org.springframework.boot

spring-boot-starter-logging

org.springframework.boot

spring-boot-starter-undertow

org.springframework.boot

spring-boot-configuration-processor

true

commons-logging

commons-logging

${common.logging}

org.slf4j

slf4j-api

${slf4j.version}

ch.qos.logback

logback-classic

${logback.version}

com.alibaba

fastjson

${fastjson.version}

com.fastdfs

fastdfs-client-java

${fastdfs.client.version}

创建配置文件

(1)在项目的src/main/resources目录下创建SpringBoot的配置文件application.yml,文件内容如下所示。

server:

port: 9999

servlet:

context-path: /resource

tomcat:

uri-encoding: UTF-8

spring:

servlet:

multipart:

max-file-size: 1024MB

max-request-size: 1024MB

main:

allow-bean-definition-overriding: true

profiles:

include: test

active: test

output:

ansi:

enabled: detect

文件指定了项目启动后监听的端口,访问的根路径、项目编码、文件上传的大小,并指定了运行时的环境。

(2)在项目的src/main/resources目录下创建logback-spring.xml日志文件,具体配置见源码工程。

(3)在项目的src/main/resources目录下创建fastdfs_client.conf文件,主要用来配置与FastDFS的连接信息。

connect_timeout = 200

network_timeout = 3000

charset = UTF-8

http.tracker_http_port = 8080

http.anti_steal_token = no

http.secret_key = FastDFS1234567890

tracker_server = 192.168.175.100:22122

至此,项目搭建完成。接下来,我们就一起实现项目的功能。

项目开发


创建工具类

首先,我们在项目的io.mykit.fastdfs.utils包下创建FastDFSClientUtils工具类。这里,我给出工具类的核心实现,其他部分小伙伴们参加源码工程。

/**

  • @author binghe

  • @description FastDFS分布式文件系统操作客户端

*/

public class FastDFSClientUtils {

private static Logger logger = LoggerFactory.getLogger(FastDFSClientUtils.class);

private static TrackerClient trackerClient;

public static void setFile(String filePath) {

try {

logger.info(“初始化分布式文件系统服务开始…”);

if(filePath == null || filePath.trim().isEmpty()) {

filePath = “fastdfs_client.conf”;

}

ClientGlobal.init(filePath);

TrackerGroup trackerGroup = ClientGlobal.g_tracker_group;

trackerClient = new TrackerClient(trackerGroup);

logger.info(“初始化分布式文件系统服务完成…”);

} catch (Exception e) {

logger.error(“加载文件异常:{}”,e );

}

}

/**

  • @param data 数据

  • @param extName 文件扩展名

  • @return 上传成功返回id,失败返回null

*/

public static String upload(byte[] data, String extName) {

TrackerServer trackerServer = null;

StorageServer storageServer = null;

StorageClient1 storageClient1 = null;

try {

NameValuePair[] meta_list = null; // new NameValuePair[0];

trackerServer = trackerClient.getTrackerServer();

if (trackerServer == null) {

logger.error(“getConnection return null”);

}

storageServer = trackerClient.getStoreStorage(trackerServer);

storageClient1 = new StorageClient1(trackerServer, storageServer);

String fileid = storageClient1.upload_file1(data, extName, meta_list);

return fileid;

} catch (Exception ex) {

logger.error(“上传文件异常:{}”, ex);

return null;

}finally{

try {

storageClient1.close();

} catch (IOException e) {

e.printStackTrace();

}

storageClient1 = null;

}

}

创建返回实体类

我们在io.mykit.fastdfs.bean包下创建ResourceBean类,用于SpringBoot接口返回结果数据,如下所示。

/**

  • @author binghe

  • @version 1.0.0

  • @description 上传图片后的返回数据

*/

public class ResourceBean implements Serializable {

private static final long serialVersionUID = -2788538880352897307L;

/**

  • 文件的访问路径

*/

private String fileUrl;

/**

  • 文件名称

*/

private String fileName;

public ResourceBean() {

super();

}

public ResourceBean(String fileUrl, String fileName) {

super();

this.fileUrl = fileUrl;

this.fileName = fileName;

}

public String getFileUrl() {

return fileUrl;

}

public void setFileUrl(String fileUrl) {

this.fileUrl = fileUrl;

}

public String getFileName() {

return fileName;

}

public void setFileName(String fileName) {

this.fileName = fileName;

}

}

其中,定义了文件的访问路径fileUrl和文件的名称fileName。也就是说,文件上传成功后,我们会向客户端返回文件的访问路径和文件的名称信息。

创建常量类

在io.mykit.fastdfs.constants包下创建ResourcesConstants常量类,ResourcesConstants类中主要定义了访问文件的基础路径和获取文件完整访问路径的方法,如下所示。

/**

  • @author binghe

  • @version 1.0.0

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

esourcesConstants类中主要定义了访问文件的基础路径和获取文件完整访问路径的方法,如下所示。

/**

  • @author binghe

  • @version 1.0.0

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

[外链图片转存中…(img-VofyeliX-1715047111693)]

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值