public class FastDFS{private staticStorageClient storageClient;static{
String fdfsConfPath="";if(PropertiesUtil.class.getClassLoader().getResource("fdfs_client.conf")!=null){
fdfsConfPath= PropertiesUtil.class.getClassLoader().getResource("fdfs_client.conf").getFile();
}try{//使用全局方法加载配置文件
ClientGlobal.init(fdfsConfPath);//创建一个TrackerClient对象
TrackerClient tracker = newTrackerClient();//通过TrackerClient对象获得TrackerServer对象
TrackerServer trackerServer =tracker.getConnection();//创建StorageServer的引用,null就可以了
StorageServer storageServer = null;//创建一个StorageClient对象,其需要两个参数(TrackerServer 和 StorageServer),通过storageClient来进行操作
storageClient = newStorageClient(trackerServer, storageServer);
}catch(Exception e) {
e.printStackTrace();
}
}/*** 根据URL 或 byte[]上传图片
*@paramurl 本地图片地址"D:\\stsworkspace\\sprites.png";
*@paramext 本地图片后缀名"png"
*@paramnvp 自定义元数据
*@return可访问路径*/
publicString updateByUrl(T url,String ext,NameValuePair nvp []) {
StringBuffer sb= new StringBuffer("http://192.168.42.128:84/");try{
String[] strings= null;if(url instanceofString) {
strings=storageClient.upload_file((String)url, ext, nvp);
}else if(url instanceof byte[]) {
strings= storageClient.upload_file((byte[])url, ext, nvp);
}for(String str : strings) {
sb.append(str);
sb.append("/");
}
sb.deleteCharAt(sb.length()-1);
}catch(Exception e) {
e.printStackTrace();
}returnsb.toString();
}/*** 下载图片http://192.168.42.128:84/group1/M00/BC/B7/wKgqgls3YFCAW77-AAFY1Aipxfo426.jpg
*@paramgroup 组名 group1
*@paramurl 路径 M00/BC/B7/wKgqgls3YFCAW77-AAFY1Aipxfo426
*@paramext 类型 jpg*/
public voiddownByUrl(String group,String url,String ext) {try{byte[] b = storageClient.download_file(group, url+"."+ext);
System.out.println(b);
IOUtils.write(b,new FileOutputStream("C:/Users/Luke/Desktop/"+UUID.randomUUID().toString()+".jpg"));
}catch(Exception e) {
e.printStackTrace();
}
}/*** 获取文件信息http://192.168.42.128:84/group1/M00/BC/B7/wKgqgls3YFCAW77-AAFY1Aipxfo426.jpg
*@paramgroup 组名 group1
*@paramurl 路径 M00/BC/B7/wKgqgls3YFCAW77-AAFY1Aipxfo426
*@paramext 类型 jpg*/
public voidgetFileInfo(String group,String url,String ext) {try{
FileInfo fi= storageClient.get_file_info(group, url+"."+ext);
System.out.println(fi.getSourceIpAddr());
System.out.println(fi.getFileSize());
System.out.println(fi.getCreateTimestamp());
System.out.println(fi.getCrc32());
}catch(Exception e) {
e.printStackTrace();
}
}/*** 获取文件元数据
*@paramgroup 组名 group1
*@paramurl 路径 M00/BC/B7/wKgqgls3YFCAW77-AAFY1Aipxfo426
*@paramext 类型 jpg*/
public voidgetFileMate(String group,String url,String ext) {try{
NameValuePair nvps[]= storageClient.get_metadata(group, url+"."+ext);for(NameValuePair nvp : nvps) {
System.out.println(nvp.getName()+ ":" +nvp.getValue());
}
}catch(Exception e) {
e.printStackTrace();
}
}/*** 删除文件
*@paramgroup 组名 group1
*@paramurl 路径 M00/BC/B7/wKgqgls3YFCAW77-AAFY1Aipxfo426
*@paramext 类型 jpg*/
public voiddeleteFile(String group,String url,String ext) {try{int i = storageClient.delete_file(group, url+"."+ext);
System.out.println(i==0?"删除成功":"删除失败:"+i);
}catch(Exception e) {
e.printStackTrace();
}
}
}