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

导读:本篇文章讲解 FastDFS Client Java源码分析一(客户端使用),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100333.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!