• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • FastDFS教程
    FastDFS環境搭建
    分布式文件系統FastDFS的HTTP訪問
    FastDFS在Java項目中開發示例
    FastDFS在web項目中的應用
    FastDFS分布式文件系統集群

    FastDFS文件上傳功能封裝

     

     

    需求

     

    因為使用FastDFS進行文件操作代碼大多都是通用的,所以我們這里在FastDFS類中將通用的功能進行封裝,并提供上傳、下載、刪除文件的方法。

     

    注意:這里只是簡單的封裝,如果多線程會有問題

     

     

    實現步驟

     

    1.  抽取獲取StorageClient的方法

     

    public static StorageClient getStorageClient() throws IOException, MyException {
        //1.加載配置文件,默認去classpath下加載
        ClientGlobal.init("fdfs_client.conf");
        //2.創建TrackerClient對象
        TrackerClient trackerClient = new TrackerClient();
        //3.創建TrackerServer對象
        trackerServer = trackerClient.getConnection();
        //4.創建StorageServler對象
        storageServer = trackerClient.getStoreStorage(trackerServer);
        //5.創建StorageClient對象,這個對象完成對文件的操作
        StorageClient storageClient = new StorageClient(trackerServer,storageServer);
        return storageClient;
    }

     

    2.  定義兩個全局變量

     

    private static TrackerServer trackerServer = null;
    private static StorageServer storageServer = null;

     

    3. 抽取關閉資源的方法

     

    public static void closeFastDFS() {
        if (storageServer != null) {
            try {
                storageServer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (trackerServer != null) {
            try {
                trackerServer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

     

    4. 改造文件上傳的方法

     

    public static void fileUpload(){
        try {
            //1. 獲取StorageClient對象
            StorageClient storageClient = getStorageClient();
            //2.上傳文件  第一個參數:本地文件路徑 第二個參數:上傳文件的后綴 第三個參數:文件信息
            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 {
            closeFastDFS();
        }
    }

     

    5. 下載文件的方法

     

    /下載文件的方法
    public static void fileDownload(){
        try {
            //1. 獲取StorageClient對象
            StorageClient storageClient = getStorageClient();
            //2.下載文件 返回0表示成功,其它均表示失敗
            int num = storageClient.download_file("group1",
                    "M00/00/00/wKjrgFxOqueAAPWKAAAAKAM14xY563.txt","E:/bb.txt");
            System.out.println(num);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            closeFastDFS();
        }
    }

     

    6. 刪除文件的方法

     

    /刪除文件的方法
    public static void fileDelete(){
        try {
            //1. 獲取StorageClient對象
            StorageClient storageClient = getStorageClient();
            //2.刪除文件 返回0表示成功,其它均表示失敗
            int num = storageClient.delete_file("group1",
                    "M00/00/00/wKjrgFxOqueAAPWKAAAAKAM14xY563.txt");
            System.out.println(num);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            closeFastDFS();
        }
    }

     

    7. 主方法調用不同的方法進行測試

     

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏