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();
        }
    }

 

原文地址:https://www.cnblogs.com/dalianpai/p/11832478.html