fastdfs的入门到精通(java操作)

引言:

  上一篇博客已经简单介绍的fastdfs的原理与安装,本节继续讨论fastdfs的实际操作部分。本身是搞java出身,下面我就主要介绍关于java操作进行演示   

    fastdfs的入门到精通(引言和单机安装)

准备条件:

  1.启动tracker和storage服务

java操作

  1.搭建环境,我使用idea进行演示,首先创建一个fastdfs的maven项目,删除其中src文件夹,在此项目基础上建立相关父子项目来进行演示。然后新建一个moudle,建成后如下:

   

 

 

   2.从github下载相关源码包:  fastdfs-client-java

   下载后如下:

    

 

 

 

 3.  copy  其中的org文件到第一步项目中的fastdfs_java的main/java下

  

 

 

        

 

 

   4.copy配置文件到resources

   

 

 

        

 

 

  5.修改配置文件,把fastdfs-client.properties.sample  修改为fastdfs-client.properties 来让程序识别 ,然后把文件内容清空。写上tracker服务器地址即可

   

 

 

  6.写测试接口

  在准备写测试接口,要在pom中追加junit的依赖:

   

 

 

   在test包下创建TestFastdfs进行测试:

    

package huhy;

import org.csource.common.MyException;
import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.junit.Test;

import java.io.IOException;

/**
 * @Author: huhy
 * @Date:2020/3/17 16:21
 * 项目名称:fastdfs
 * @description: 测试
 */
public class TestFastdfs {

    /**
     * 测试文件上传
     * @throws IOException
     * @throws MyException
     */
    @Test
    public void testFirstFastdfsCmd() throws IOException, MyException {
        //初始化配置文件
        ClientGlobal.init("fastdfs-client.properties");
        //tracker 客户端
        TrackerClient trackerClient = new TrackerClient();
        //获取trackerServer
        TrackerServer trackerServer = trackerClient.getTrackerServer();
        //创建StorageClient 对象
        StorageClient storageClient = new StorageClient(trackerServer);

        //文件元数据信息组
        NameValuePair[]  nameValuePairs = {new NameValuePair("author","huhy")};
        /**
         * 参数1  本地路径
         * 参数2  后缀名
         * 参数3  文件元数据属性
         */
        String[] txts = storageClient.upload_file("F:\\2020学习\\fastdfs\\测试上传.txt", "txt", nameValuePairs);
        for (String txt : txts) {
            System.out.println(txt);
        }
    }

    /**
     * 测试下载文件
     * @throws IOException
     * @throws MyException
     */
    @Test
    public void testDownloadFile() throws IOException, MyException {
        //初始化配置文件
        ClientGlobal.init("fastdfs-client.properties");
        //tracker 客户端
        TrackerClient trackerClient = new TrackerClient();
        //获取trackerServer
        TrackerServer trackerServer = trackerClient.getTrackerServer();
        //创建StorageClient 对象
        StorageClient storageClient = new StorageClient(trackerServer);
        //测试文件下载
        storageClient.download_file("group1", "M00/00/00/wKjsgl5wkXuATLO3AAAAGXCvZ6w695.txt","f:/a.txt");
    }
}

  注意,上面测试只是简单测试上传和下载方法,关于java操作fastdfs的API还有很多,不一一测试,上面演示主要是让大家对java操作fastdfs有一个上下连贯的思想。

  在上面演示中,可能会遇到两个典型的错误。

    1.配置文件错误:

      

 

     解决办法:复制 tracker_server 替换配置文件 “ = ” 前配置即可:

      

 

    2.  连接tracker服务器超时问题:

      

 

     解决办法: 这个是老问题,因为我们配置好服务器后忘了关闭防火墙造成的,关闭防火墙即可:

      我使用的centos7 关闭防火墙命令为

        firewall-cmd --state   查看防火墙状态

        systemctl stop firewalld.service   临时关闭防火墙(重启后失效)

        systemctl disable firewalld.service   永久关闭防火墙

      

 

 

补充:  

  1.很多人会有疑问,为啥不直接引用fastdfs-cleint的maven包

  因为github上没有官方的客户端请求包,现在发布到github上的包大多数都是各个公司根据自己公司情况封装过的,所以不建议使用。鉴于这种情况,作者余庆也写了一个,就是上面我下载的那个源码包。

  那为啥这个不能引用呢,因为作者在开发中编译环境可能存在差异,在我们引用的时候可能会报这样那样的错误,最经典的是java编译环境不匹配。所以官方建议我们下载源码包,根据自己公司环境自己构建相对于的jar包进行使用,这也是上面演示引入源码重新编译的原因。 


  关于java操作fastdfs的几个典型的api介绍,暂时介绍到这里,后续介绍springboot的相关整合,配置,操作。


 

    

posted @ 2020-03-17 17:42  陽66  阅读(2354)  评论(0编辑  收藏  举报