fastDFS 使用fastDFS实现文件上传和下载

本文档详细介绍了如何使用FastDFS搭建环境,包括创建Maven工程,配置fastdfs-client.properties文件,以及执行文件上传、查询和下载操作。通过Java API,可以方便地与FastDFS进行集成。
摘要由CSDN通过智能技术生成

1. 搭建环境

这里我们使用javaApi测试文件的上传,java版本的fastdfs-client地址在: https://github.com/happyfish100/fastdfs-client-java 参考此工程编写测试用例。

1)创建maven工程

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.oschina.zcx7878/fastdfs-client-java -->
        <dependency>
            <groupId>net.oschina.zcx7878</groupId>
            <artifactId>fastdfs-client-java</artifactId>
            <version>1.27.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>

2) 配置 文件

在classpath:config下创建fastdfs-client.properties文件

fastdfs.connect_timeout_in_seconds = 5
fastdfs.network_timeout_in_seconds = 30
fastdfs.charset = UTF-8
fastdfs.tracker_servers = 192.168.101.65:22122

2. 文件上传

//上传文件
@Test
public void testUpload() {
	try {
		ClientGlobal.initByProperties("config/fastdfs‐client.properties");
		System.out.println("network_timeout=" + ClientGlobal.g_network_timeout + "ms");
		System.out.println("charset=" + ClientGlobal.g_charset);
		//创建客户端
		TrackerClient tc = new TrackerClient();
		//连接tracker Server
		TrackerServer ts = tc.getConnection();
		if (ts == null) {
			System.out.println("getConnection return null");
			return;
		}
		//获取一个storage server
		StorageServer ss = tc.getStoreStorage(ts);
		if (ss == null) {
			System.out.println("getStoreStorage return null");
		}
		//创建一个storage存储客户端
		StorageClient1 sc1 = new StorageClient1(ts, ss);
		NameValuePair[] meta_list = null; //new NameValuePair[0];
		String item = "C:\\Users\\admin\\Desktop\\1.png";
		String fileid;
		fileid = sc1.upload_file1(item, "png", meta_list);
		System.out.println("Upload local file " + item + " ok, fileid=" + fileid);
	} catch (Exception ex) {
		ex.printStackTrace();
	}
}

3. 文件查询

//查询文件
@Test
public void testQueryFile() throws IOException, MyException {
	ClientGlobal.initByProperties("config/fastdfs‐client.properties");
	TrackerClient tracker = new TrackerClient();
	TrackerServer trackerServer = tracker.getConnection();
	StorageServer storageServer = null;
	StorageClient storageClient = new StorageClient(trackerServer,storageServer);
	FileInfo fileInfo = storageClient.query_file_info("group1",
"M00/00/01/wKhlQFrKBSOAW5AWAALcAg10vf4862.png");
	System.out.println(fileInfo);
}

4. 文件下载

//下载文件
@Test
public void testDownloadFile() throws IOException, MyException {
	ClientGlobal.initByProperties("config/fastdfs‐client.properties");
	TrackerClient tracker = new TrackerClient();
	TrackerServer trackerServer = tracker.getConnection();
	StorageServer storageServer = null;
	StorageClient1 storageClient1 = new StorageClient1(trackerServer,storageServer);
	byte[] result =storageClient1.download_file1("group1/M00/00/01/wKhlQFrKBSOAW5AWAALcAg10vf4862.png");
	File file = new File("d:/1.png");
	FileOutputStream fileOutputStream = new FileOutputStream(file);
	fileOutputStream.write(result);
	fileOutputStream.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值