FastDFS—学习过程记录—FastDFS的Java程序操作

1.fastdfs-client-java是官方的源代码

2.引入FastFDS的Maven依赖包

  1. 这个依赖没有出现在Maven的中央库,因此我们需要要对源码进行编译将客户端的代码编译到maven的本地库中或直接拷贝依赖包到本地Maven仓库中
<dependency>
		<groupId>org.csource</groupId>
	   <artifactId>fastdfs-client-java</artifactId>
	   <version>1.27-SNAPSHOT</version>
</dependency>

3.FastFDS的上传功能java代码

public static void fileUpload() {
        TrackerServer ts = null;
        StorageServer ss = null;
        try {
            //1.全局初始化,读取配置文件,用于将所有的tracker地址读取到内存中
            ClientGlobal.init("fastfds.conf");
            //2.创建TrackerClient对象
            TrackerClient tc = new TrackerClient();
            //3.创建TrackerServer对象
            ts = tc.getConnection();
            //4.创建StorageServler对象
            ss = tc.getStoreStorage(ts);
            //5.定义storage的客户端对象,需要这个对象来完成上传下载和删除
            //5.创建StorageClient对象,这个对象完成对文件的操作
            StorageClient storageClient = new StorageClient(ts, ss);
            //6.上传文件  第一个参数:本地文件路径 第二个参数:上传文件的后缀 第三个参数:文件信息,返回一个String[]数组,这个数据对我们非常重要需要我们妥善保管,建议存入数据库
            //7.数组中的 第一个元素是文件所在的组名,第二个元素是文件所在的远程路径名称
            String[] uploadArray = storageClient.upload_file("D:/aa.txt", "txt", null);
            for (String str : uploadArray) {
                System.out.println(str);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            if (ss != null) {
                try {
                    ss.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (ts != null) {
                try {
                    ts.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

4.FastFDS的下载功能java代码

public static void fileDownload() {
        TrackerServer ts = null;
        StorageServer ss = null;
        try {
            //1.全局初始化,读取配置文件,用于将所有的tracker地址读取到内存中
            ClientGlobal.init("fastfds.conf");
            //2.创建TrackerClient对象
            TrackerClient tc = new TrackerClient();
            //3.创建TrackerServer对象
            ts = tc.getConnection();
            //4.创建StorageServler对象
            ss = tc.getStoreStorage(ts);
            //5.定义storage的客户端对象,需要这个对象来完成上传下载和删除
            //5.创建StorageClient对象,这个对象完成对文件的操作
            StorageClient storageClient = new StorageClient(ts, ss);
            //6.文件下载,参数1:文件所在远程服务器分组,参数2:需要下载文件的远程文件名,参数3 需要保存的本地文件名,
            // 返回一个int类型的数据,返回0表示成功,其他值均表示失败
            int group1 = storageClient.download_file("group1",
                    "M00/00/00/wKjrgFxOqueAAPWKAAAAKAM14xY563.txt", "E:/bb.txt");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            if (ss != null) {
                try {
                    ss.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (ts != null) {
                try {
                    ts.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

5.FastFDS的删除功能java代码

public static void fileDelete() {
        TrackerServer ts = null;
        StorageServer ss = null;
        try {
            //1.全局初始化,读取配置文件,用于将所有的tracker地址读取到内存中
            ClientGlobal.init("fastfds.conf");
            //2.创建TrackerClient对象
            TrackerClient tc = new TrackerClient();
            //3.创建TrackerServer对象
            ts = tc.getConnection();
            //4.创建StorageServler对象
            ss = tc.getStoreStorage(ts);
            //5.定义storage的客户端对象,需要这个对象来完成上传下载和删除
            //5.创建StorageClient对象,这个对象完成对文件的操作
            StorageClient storageClient = new StorageClient(ts, ss);
            //6.文件删除,参数1:需要删除的文件所在远程服务器分组,参数2:需要删除的下载文件的远程文件名
            // 返回一个int类型的数据,返回0表示成功,其他值均表示失败
            int group1 = storageClient.delete_file("group1",
                    "M00/00/00/wKjrgFxOqueAAPWKAAAAKAM14xY563.txt");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            if (ss != null) {
                try {
                    ss.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (ts != null) {
                try {
                    ts.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }