FastDfs的java客户端的上传下载删除操作代码

package com.test.fastDfs;


import java.io.BufferedOutputStream;
import java.io.IOException;


import org.csource.common.NameValuePair;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient1;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;






/**
 * @author ll
 * @使用示例 
 *
  • 1.配置配置文件 fast_dfs.conf内容如下:tracker_server=192.168.24.200:22122

  •  *
  • 2.创建FastDfs客户端并传入参数classpath:fast_dfs.conf(图片服务器配置文件地址),
     * FastDFSClient client = new FastDFSClient("classpath:fast_dfs.conf");

  •  *
  • 3.使用客户端调用相关方法
     * String url = client.uploadFile(fileContent, extName);
     * url为返回路径,客户端访问的时候可以在路径前拼接图片服务器的地址

  •  */
    public class FastDFSClient {


    private TrackerClient trackerClient = null;
    private TrackerServer trackerServer = null;
    private StorageServer storageServer = null;
    private StorageClient1 storageClient = null;

    public FastDFSClient(String conf) throws Exception {
    if (conf.contains("classpath:")) {
    conf = conf.replace("classpath:", this.getClass().getResource("/").getPath());
    }
    ClientGlobal.init(conf);
    trackerClient = new TrackerClient();
    trackerServer = trackerClient.getConnection();
    storageServer = null;
    storageClient = new StorageClient1(trackerServer, storageServer);
    }

    /**
    * 上传文件方法
    *

    Title: uploadFile


    *

    Description:


    * @param fileName 文件全路径
    * @param extName 文件扩展名,不包含(.)
    * @param metas 文件扩展信息
    * @return
    * @throws Exception
    */
    public String uploadFile(String fileName, String extName, NameValuePair[] metas) throws Exception {
    String result = storageClient.upload_file1(fileName, extName, metas);
    return result;
    }

    public String uploadFile(String fileName) throws Exception {
    return uploadFile(fileName, null, null);
    }

    public String uploadFile(String fileName, String extName) throws Exception {
    return uploadFile(fileName, extName, null);
    }

    /**
    * 上传文件方法
    *

    Title: uploadFile


    *

    Description:


    * @param fileContent 文件的内容,字节数组
    * @param extName 文件扩展名
    * @param metas 文件扩展信息
    * @return
    * @throws Exception
    */
    public String uploadFile(byte[] fileContent, String extName, NameValuePair[] metas) throws Exception {

    String result = storageClient.upload_file1(fileContent, extName, metas);
    return result;
    }

    public String uploadFile(byte[] fileContent) throws Exception {
    return uploadFile(fileContent, null, null);
    }

    public String uploadFile(byte[] fileContent, String extName) throws Exception {
    return uploadFile(fileContent, extName, null);
    }
    /** 
         * 下载文件 
         * @param path 路径地址如:group1/M00/00/00/wKgRsVjtwpSAXGwkAAAweEAzRjw471.jpg
         * @param output 字节输出包装流 
         * @return -1失败,0成功 ,2找不到文件
         */ 
    public int download_file(String path,BufferedOutputStream output) {  
            //byte[] b = storageClient.download_file(group, path);  
            int result=-1;  
            try {  
                byte[] b = storageClient.download_file1(path);  
                System.out.println(b.length);
                    try{  
                        if(b != null){  
                            output.write(b);  
                            result=0;  
                        }  
                    }catch (Exception e){} //用户可能取消了下载  
                    finally {  
                        if (output != null)  
                            try {  
                                output.close();  
                            } catch (IOException e) {  
                                e.printStackTrace();  
                            }  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return result;  
        }  

        /** 
         * 删除文件 
         * @param group 组名 如:group1 
         * @param storagePath 不带组名的路径名称 如:M00/00/00/wKgRsVjtwpSAXGwkAAAweEAzRjw471.jpg 
         * @return -1失败,0成功 ,2找不到文件
         */  
        public Integer delete_file(String group ,String storagePath){  
            int result=-1;  
            try {  
                result = storageClient.delete_file(group, storagePath);  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
             return  result;  
        }  
        /** 
         *  删除文件
         * @param storagePath  文件的全部路径 如:group1/M00/00/00/wKgRsVjtwpSAXGwkAAAweEAzRjw471.jpg 
         * @return -1失败,0成功 ,2找不到文件
         */  
        public Integer delete_file(String storagePath){  
            int result=-1;  
            try {  
                result = storageClient.delete_file1(storagePath);  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return  result;  
        }  
    }

    你可能感兴趣的:(java)