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

/**
* 上传文件方法
* <p>Title: uploadFile</p>
* <p>Description: </p>
* @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);
}

/**
* 上传文件方法
* <p>Title: uploadFile</p>
* <p>Description: </p>
* @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);
}
}
public class FastDFSTest {

@Test
public void testFileUpload() throws Exception {
// 1、加载配置文件,配置文件中的内容就是tracker服务的地址。
ClientGlobal.init("D:/workspaces-itcast/term197/taotao-manager-web/src/main/resources/resource/client.conf");
// 2、创建一个TrackerClient对象。直接new一个。
TrackerClient trackerClient = new TrackerClient();
// 3、使用TrackerClient对象创建连接,获得一个TrackerServer对象。
TrackerServer trackerServer = trackerClient.getConnection();
// 4、创建一个StorageServer的引用,值为null
StorageServer storageServer = null;
// 5、创建一个StorageClient对象,需要两个参数TrackerServer对象、StorageServer的引用
StorageClient storageClient = new StorageClient(trackerServer, storageServer);
// 6、使用StorageClient对象上传图片。
//扩展名不带“.”
String[] strings = storageClient.upload_file("D:/Documents/Pictures/images/200811281555127886.jpg", "jpg", null);
// 7、返回数组。包含组名和图片的路径。
for (String string : strings) {
System.out.println(string);
}
}
}

最新文章

  1. centos7的网络设置
  2. mysql 数据库连接超时的问题 autoReconnect=true
  3. telnet -测试端口号
  4. Django:使用PyCharm创建django项目并发布到apache2.4
  5. SpringMVC + Spring + MyBatis 学习笔记:遭遇order by 排序问题
  6. Educational Codeforces Round 15 套题
  7. 《Java数据结构与算法》笔记-CH2无序数组
  8. Apache Solr配置
  9. 自动化测试CTS命令
  10. .Net 数组去除重复项
  11. 怎样清除SWAP里的文件
  12. java常用类--与用户互动
  13. opendir函数和readdir函数内涵及用法
  14. 转---变量LEGB规则
  15. kafka管理器之kafka-manager
  16. INTRO: THE DAWN (亡灵序曲) 中独白
  17. 46 What Is Real Happiness ? 什么是真正的幸福 ?
  18. bootstrap 报错
  19. #define、const、typedef的区别
  20. 记录错误:tomcat“socket close”错误

热门文章

  1. python - Django - restframework 简单使用 和 组件
  2. 001——CC2530——终端或者路由器传输到不同多协调器上
  3. SpringMVC的数据效验
  4. 常用的两种web单点登录SSO的实现原理
  5. git 在 A 项目中引用 B 项目
  6. QMutexLocker基于QMutex的便利类
  7. rc.local配置
  8. 生活中需要一台mac本子
  9. 《挑战30天C++入门极限》C/C++中结构体(struct)知识点强化
  10. 7、CentOS6 编译安装