FastDFS Client Java源码分析一(客户端使用)

概述

Java客户端获取

Maven Repository仓库获取

可以从仓库中获取用友云提供的jar包,但是获取的客户端版本比较老,如果想使用最新的客户端版本,需要自己编译源码,下面有介绍。
在这里插入图片描述

<!-- https://mvnrepository.com/artifact/org.csource/fastdfs-client-java -->
<dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client-java</artifactId>
    <version>1.27-RELEASE</version>
</dependency>

通过Java源码自己打jar包

下载源码

从https://github.com/happyfish100/fastdfs-client-java 下载Master分支的源码。
在这里插入图片描述
可以通过Https或者git的方式下载,博主使用的是git下载。
在这里插入图片描述

Maven 打包

mvn clean install

在这里插入图片描述

  1. 编译成功后jar包安装到本地仓库中。
    在这里插入图片描述

客户端环境搭建

搭建客户端使用环境

linux环境防火墙配置打开22122、23000端口。

# 打开tracker服务器的连接端口22122
[root@localhost 00]# firewall-cmd --zone=public --add-port=22122/tcp --permanent
[root@localhost 00]# firewall-cmd --reload
[root@localhost 00]# firewall-cmd --query-port 22122/tcp
# 打开storage服务器的连接端口23000
[root@localhost 00]# firewall-cmd --zone=public --add-port=23000/tcp --permanent
[root@localhost 00]# firewall-cmd --reload
[root@localhost 00]# firewall-cmd --query-port 23000/tcp

Idea搭建fdfs-client项目

创建fdfs-client项目,引入fasts-clinet-java包

  • 创建springboot项目。
  • 引入jar包
		<dependency>
            <groupId>org.csource</groupId>
            <artifactId>fastdfs-client-java</artifactId>
            <version>1.29-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>

拷贝fdfs_client.conf到项目的resource目录下

在这里插入图片描述

修改fdfs_client.conf的tracker-server配置

tracker_server = 192.168.112.128:22122

文件上传

添加上传方法

@Controller
public class FDFSController {
    public void fileUpload() {
        TrackerServer trackerServer = null;
        StorageServer storageServer = null;

        try {
            // 加载配置文件,默认区classpath下加载
            ClientGlobal.init("fdfs_client.conf");
            // 创建TrackerClient对象
            TrackerClient trackerClient = new TrackerClient();
            // 创建TrackerServer对象
            trackerServer = trackerClient.getTrackerServer();
            // 创建StorageServer对象
            storageServer = trackerClient.getStoreStorage(trackerServer);
            // 创建StorageClient对象
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);
            // 上传文件,第一参数:本地路径,第二个参数:上传文件的后置,第三个参数:文件信息
            String[] uploadArray = storageClient.upload_file("D:/tt.txt", "txt", null);
            Arrays.stream(uploadArray).forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            if (storageServer != null) {
                try {
                    storageServer.getConnection().close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (MyException e) {
                    e.printStackTrace();
                }
            }
            if (trackerServer != null) {
                try {
                    trackerServer.getConnection().close();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (MyException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

上传测试用例

@SpringBootTest
public class FdfsClientApplicationTests {

    @Autowired
    private FDFSController fdfsController;

    @Test
    public void testUpload() {
        fdfsController.fileUpload();
    }
}

上传结果

2021-05-16 22:16:33.408  INFO 9900 --- [           main] c.p.f.f.FdfsClientApplicationTests       : Starting FdfsClientApplicationTests using Java 1.8.0_181 on DESKTOP-OTR8LPB with PID 9900 (started by asus in D:\work_space\fdfs-client)
2021-05-16 22:16:33.423  INFO 9900 --- [           main] c.p.f.f.FdfsClientApplicationTests       : No active profile set, falling back to default profiles: default
2021-05-16 22:16:34.689  INFO 9900 --- [           main] c.p.f.f.FdfsClientApplicationTests       : Started FdfsClientApplicationTests in 2.627 seconds (JVM running for 6.418)
group1
M00/00/00/wKhwgGChKT2AboZaAAAAKO201Jw249.txt
Disconnected from the target VM, address: '127.0.0.1:51414', transport: 'socket'

linux中查看上传的文件

[root@localhost data]# cd 00/00
[root@localhost 00]# ll
total 52
-rw-r--r--. 1 root root    40 May 16 22:16 wKhwgGChKT2AboZaAAAAKO201Jw249.txt

可以看到文件已经上传成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

融极

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值