FastDFS(JavaAPI访问)

添加依赖:

        <dependency>
            <groupId>cn.bestwu</groupId>
            <artifactId>fastdfs-client-java</artifactId>
            <version>1.27</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

第一个依赖是主体内容,后面两个依赖是代码中后面会用到的一些工具包。

配置文件: 

使用API操作连接FastDFS时需要加载一个配置文件,文件后缀名必须为.conf,例如:fdfs.conf   配置文件在resource目录下的任何位置创建。

配置文件内容:

#配置连接超时
connect_timeout=10
#网络工作的超时时间,一次连接的超时时长
network_timeout=30
#连接中的使用字符集,在连接中会传递各种各样的字节信息,
#字节信息如果需要转换为字符,那需要一个字符集进行解码编码的过程
charset=UTF-8
#tracker的http协议端口,
#和FastDFS的tracker服务器的配置文件tracker.conf中的http.server.port一致
http.tracker_http_port=8080
#tracker服务器所在地址
tracker_server=192.168.8.6:22122

5个配置项。 

创建一个类连接FastDFS:  

public class TestInitClient{
    public static void main(String[] args){
        try{
            //加载配置文件
            ClientGlobal.init("src/main/java/resources/test/fdfs.conf");
            //tracker客户端对象
            TrackerClient trackerClient=new TrackerClient();
            //tracker服务端对象
            TrackerServer trackerServer=trackerClient.getConnection();
            //storage服务端对象
            StorageServer storageServer=trackerClient.getStoreStorage(trackerServer);
            //最终需要的对象,即storage客户端对象
            StorageClient storageClient=new StorageClient(trackerServer,storageServer);
            System.out.println("storageClient:"+storageClient);
        }catch(IOException e){
            e.printStackTrace();
        }catch(MyException e){
            e.printStackTrace();
        }
        
    }
}

 【手写版】

public class TestInitClient {
    public static void main(String[] args) {
        //创建FastDFS Java客户端
        //加载客户端配置文件,就是刚定义的conf配置文件
        try{
            ClientGlobal.init("src/main/resources/test/fdfs.conf");
            //创建Tracker服务器的客户端连接对象,无参构造其中默认会调用一个有参构造
            //new TrackerClient(TrackerGlobal.g_tracker_group),绑定tracker服务器的ip和端号
            TrackerClient trackerClient=new TrackerClient();
            //通过Tracker客户端对象获取Tracker服务端对象
            TrackerServer trackerServer=trackerClient.getConnection();
            //通过tracker客户端和服务端对象获取storage服务端对象
            StorageServer storageServer=trackerClient.getStoreStorage(trackerServer);
            //通过tracker服务端对象和storage服务端对象实现文件上传下载
            //最终使用的对象
            StorageClient storageClient=new StorageClient(trackerServer,storageServer);
            System.out.println("storageClient :"+storageClient);
        }catch(IOException e){//配置文件找不到之类的
            e.printStackTrace();
        }catch (MyException e){//FastDFS的java客户端API自定义的异常
            //如tracker服务器连接错误,或者storage服务器连接错误
        }
    }
}

【复制版】

使用properties配置文(不喜欢conf配置文件的可以看看):fdfs.properties

#连接超时
fastdfs.connect_timeout_in_seconds=10
#网络超时
fastdfs.network_timeout_in_seconds=30
#连接的字符集
fastdfs.charset=UTF-8
#tracker服务器中配置文件中的http端口配置
fastdfs.http_tracker_http_port=8080
#tracker服务器ip和端口(servers不是server)
fastdfs.tracker_servers=192.168.8.6:22122

 通过properties配置文件来创建客户端连接:

public class TestInitClientByProperties {
    public static void main(String[] args) {
        //加载配置文件
        Properties properties=new Properties();
        try {
            properties.load(TestInitClientByProperties.class.getClassLoader().getResourceAsStream("test/fdfs.properties"));

        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("properties配置文件加载错误");
            return;
        }
        //通过ClientGlobal加载配置内容
        try {
            ClientGlobal.initByProperties(properties);
            TrackerClient trackerClient=new TrackerClient();
            TrackerServer trackerServer=trackerClient.getConnection();
            StorageServer storageServer=trackerClient.getStoreStorage(trackerServer);
            StorageClient storageClient=new StorageClient(trackerServer,storageServer);
            System.out.println("storageClient: "+storageClient);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        }
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

m0_47295812

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

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

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

打赏作者

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

抵扣说明:

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

余额充值