FastDFSツールクラス

4100 ワード

package util;

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;

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

需要:ローカル画像を画像サーバーにアップロードし、コンソールでurlを印刷する
  • MavenエンジニアリングfastDFSdemo
  • の作成
    FastDFSクライアントjarパッケージはセントラルウェアハウスに存在しないため、以下のコマンドを使用して、JarパッケージをMavenローカルウェアハウス(jarパッケージをdディスクsetupディレクトリに配置)に手動でインストールする必要があります.このjarパッケージは、省略できます.
    mvn install:install-file -DgroupId=org.csource.fastdfs -DartifactId=fastdfs  -Dversion=1.2 -Dpackaging=jar -Dfile=d:\setup\fastdfs_client_v1.20.jar
    pom.xmlに導入
                org.csource.fastdfsgroupId>         fastdfsartifactId>         1.2version>     dependency>
    (2)プロファイルfdfs_の追加Client.conf、サーバアドレスを192.168.25.133に設定
    //...... tracker_server=192.168.25.133:22122//......
    (3)javaクラスを作成し、mainメソッドコードは以下の通りです.
            //1、プロファイルをロードします.プロファイルの内容がtrackerサービスのアドレスです.        ClientGlobal.init("D:/maven_work/fastDFS-demo/src/fdfs_client.conf");        //2、TrackerClientオブジェクトを作成します.直接new一つ.        TrackerClient trackerClient = new TrackerClient();        //3.TrackerClientオブジェクトを使用して接続を作成し、TrackerServerオブジェクトを取得します.        TrackerServer trackerServer = trackerClient.getConnection();        //4、StorageServerのリファレンスを作成し、nullの値を設定する        StorageServer storageServer = null;        //5.StorageClientオブジェクトを作成するには、2つのパラメータTrackerServerオブジェクト、StorageServerの参照が必要である        StorageClient storageClient = new StorageClient(trackerServer, storageServer);        //6、StorageClientオブジェクトを使って画像をアップロードする.       //拡張子は「.」を持たない        String[] strings = storageClient.upload_file("D:/pic/benchi.jpg", "jpg",                 null);        //7、配列を返します.グループ名とピクチャを含むパス.        for (String string : strings) {             System.out.println(string);         }
    コンソールは次の結果を出力します.
    group1 M00/00/00/wKgZhVkMP4KAZEy-AAA-tCf93Fo973.jpg
    ブラウザで入力:
    http://192.168.25.133/group1/M00/00/00/wKgZhVkMP4KAZEy-AAA-tCf93Fo973.jpg