• FastDFS整合普通Maven项目(四)


    1、下载官方的源代码:https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master

    2、采用maven命令编译成jar安装到本地maven库:mvn clean install

    3、在Java程序中使用它提供的API来访问fastDFS文件系统;

    注:maven官网的客户端有点问题,需要自己生成jar包

    执行mvn clean install后,会出现在本地仓库中

    测试代码如下

    工具类

    package com.topcheer.fastdfs;
    ​
    import java.io.IOException;
    ​
    import org.csource.fastdfs.ClientGlobal;
    import org.csource.fastdfs.StorageClient;
    import org.csource.fastdfs.StorageServer;
    import org.csource.fastdfs.TrackerClient;
    import org.csource.fastdfs.TrackerServer;
    ​
    public class FastDfsUtil {
    ​
        private static final String conf = "fastdfs-client.conf";
        
        private static TrackerServer trackerServer = null;
        private static StorageServer storageServer = null;
    ​
        public static StorageClient getStorageClient() {
            StorageClient storageClient = null;
            try {
                // 1 初始化配置文件
                ClientGlobal.init(conf);
    ​
                // 2 创建tracker的客户端对象
                TrackerClient client = new TrackerClient();
    ​
                // 3 创建tracker的服务器对象
                trackerServer = client.getConnection();
    ​
                // 4 创建storage的客户端对象
                storageServer = client.getStoreStorage(trackerServer);
    ​
                // 5 创建storage的服务器对象
                storageClient = new StorageClient(trackerServer, storageServer);
    ​
            } catch (Exception e) {
                e.printStackTrace();
            }
            return storageClient;
        }
    ​
        //关闭资源
        public static void close() {
    ​
            if (trackerServer != null) {
                try {
                    trackerServer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    ​
            if (storageServer != null) {
                try {
                    storageServer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    ​
        }
    ​
    }

    fastdfs-client.conf配置信息

    tracker_server = 192.168.180.104:22122

    上传

     public static void uploadFile() {
          
                try {
                    String[]  strings = FastDfsUtil.getStorageClient().upload_appender_file("C:\Users\asus\Desktop\激活码.txt", "txt", null);
                    Arrays.asList(strings).forEach(s -> System.out.println(s));
                    //group1
                   // M00/00/00/wKi0aF3II2yEPlv6AAAAAHp_ifU838.txt
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (MyException e) {
                    e.printStackTrace();
                }finally {
                    FastDfsUtil.close();
                }
        }

     

    注:nginx.conf的端口被改成8888了,测试结果如图

    下载

     public static void downfile() {
    ​
            try {
    ​
                FastDfsUtil.getStorageClient().download_file("group1", "M00/00/00/wKi0aF3II2yEPlv6AAAAAHp_ifU838.txt", "d:/a.txt");
            } catch (IOException e) {
                e.printStackTrace();
            } catch (MyException e) {
                e.printStackTrace();
            }finally {
                FastDfsUtil.close();
            }
        }

    删除

      /**
         * delete file from storage server
         *
         * @param group_name      the group name of storage server
         * @param remote_filename filename on storage server
         * @return 0 for success, none zero for fail (error code)
         */
        public static void delFile() {
            try {
                int file = FastDfsUtil.getStorageClient().delete_file("group1", "M00/00/00/wKi0aF3II2yEPlv6AAAAAHp_ifU838.txt");
                System.out.println(file);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (MyException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                FastDfsUtil.close();
            }
        }

     

  • 相关阅读:
    常用的 JavaScript 简写方法
    user-select详解
    惊人的CSS和JavaScript动画logos例子
    debounce与throttle区别
    Vue.js中data,props和computed数据
    字体图标出现乱码的兼容方案
    ios调用Html内JS alert 不能点击关闭为甚?
    统一诊断服务 (Unified diagnostic services , UDS) (二)
    统一诊断服务 (Unified diagnostic services , UDS) (一)
    CAN总线同步
  • 原文地址:https://www.cnblogs.com/dalianpai/p/11832478.html
Copyright © 2020-2023  润新知