专栏首页OSChinaFastDFS的使用

FastDFS的使用

FastDFS安装(http://blog.csdn.net/LoveCarpenter/article/details/75913329)

FastDFS的使用 (基本使用)

tracker_server=192.168.36.20:22122
package FastDFS;

import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.junit.Test;

/**
 * 
 * @author: SHF
 * @date: 2017年12月15日 下午4:21:30
 * @Description: 对我的图片服务器进行测试
 */
public class FastDFSTest {

	/**
	 * 测试图片服务器是否能使用
	 */
	@Test
	public void testFastDFS() throws Exception{
		//1 创建一个配置文件,文件名任意,内容就是tracker服务器的地址
		
		//2 使用全局对象加载配置文件(暂时使用全文件名)
		ClientGlobal.init("E:/Eclipse/Graduation-Project/Graduation-Project/Graduation-manager-web/src/main/resources/FastDFS/fastdfsServer.conf");
		
		//3 创建TrackerClient对象
		TrackerClient trackerClient=new TrackerClient();
		
		//4 通过TrakcerClient对象来获得一个trackerServier对像
		TrackerServer trackerServer=trackerClient.getConnection();
		
		//5 创建一个StorageServier的引用,可以是null
		StorageServer storageServer=null;
		
		//6 创建一个StorageClient,参数使用TrackerServer和StrorageServer
		StorageClient storageClient=new StorageClient(trackerServer, storageServer);
		
		//7 使用StorageClient上传文件.
		String [] str=storageClient.upload_file("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg", "jpg", null);
	
		for(String string_name:str){
			System.out.println(string_name);
		}
	}
}

对上述步骤进行封装

package com.shi.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);
	}
	
	/**
	 * 上传文件方法
	 * <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);
	}
}

封装测试

package test;

import org.junit.Test;

import com.shi.util.FastDFSClient;

public class FastDFSClientTest {

	@Test
	public void testFastDFSClien(){
		try {
			FastDFSClient fastDFSClient =new FastDFSClient("E:/Eclipse/Graduation-Project/Graduation-Project/Graduation-manager-web/src/main/resources/FastDFS/fastdfsServer.conf");
			String name=fastDFSClient.uploadFile("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg" ,"jpg");
			System.out.println(name);
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Springboot 整合RabbitMQ ---基于Class的开发

    用户5927264
  • Spring-boot 整合RabbitMQ ------基于注解的开发

    用户5927264
  • springBoot 缓存开发

    用户5927264
  • spring service层单元测试

    service层测试较简单,目前大多数测试主要是针对public方法进行的。依据测试方法划分,可以分为两种:基于mock的隔离测试和基于dbunit的普通测试。...

    YGingko
  • 递归树的平面化实验

    用户1148526
  • 再次和老李一起憋山寨Workerman(九)

    今天接着昨天的socket_recv()继续编,上来就得先尝试解决一个问题:客户端每次发来的数据长度都是不固定的,怎么办?

    老李秀
  • SpringBoot之Jms

    前言:JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用...

    王念博客
  • Mac下的Jenkins安装

    1)通过命令行安装   brew install jenkins,可能会遇到先更新 brew 的情况  https://brew.sh/index_zh-cn;

    meteoric
  • Shiro教程7(整合SSM项目-授权)

      首先授权必须是在认证通过之后才会执行的操作,之前我们在Shiro教程4(授权操作)该教程中讲过,获取权限我们是通过如下方法实现的

    用户4919348
  • Organizational Unit useful function module

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券