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を印刷する
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に導入
(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