zoukankan      html  css  js  c++  java
  • 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的相关整合,配置,操作。


        

  • 相关阅读:
    Apache工作原理
    Mysql主从复制
    Apache 工作模式
    Codeforces 932E Team Work
    【TJOI2018】教科书般的亵渎
    Codeforces 960G Bandit Blues
    斯特林数&斯特林反演
    【BZOJ4916】神犇与蒟蒻
    【BZOJ3944】Sum
    【BZOJ4805】欧拉函数求和
  • 原文地址:https://www.cnblogs.com/huhongy/p/12512234.html
Copyright © 2011-2022 走看看