开发者学堂课程【Spring Boot+Vue.js+FastDFS实现分布式图片服务器 :FastDFS 测试-下载文件测试】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/742/detail/13143
FastDFS 测试-下载文件测试
内容介绍
一.测试查询文件上传
二.下载文件上传
一.测试查询文件上传
本节课的代码与上节课差不多,只是不再需要文件元信息
try{
//加载 fastDFS 客户端的配置文件
ClientGlobal.initByProperties(“config/fastdfs-client.properties”); //加载的即为括号里的配置文件内容
System.out.println(“network_timeout=”+ ClientGlobal.g_network_timeout + “ms”);
TrackerClient tracker = new TrackerClient();//创建 tracker 的客户端,提供了 tracker 的类,通过此类就可以访问它。
rackerServer trackerServer = tracker.getConnection();//客户端可以通过获取连接来获取 storage 服务
StorageServer storageServer =nu11;//定义 storage 客户端。因为 storage 既要访问 tracker 又要访问 storage ,所以有两个客户端。
1.查询文件上传的两种方法:
(1)查询一个主名
client.query_file_info(“group1”,”M00/00/02/wKh1QFrKX0mATW_LAALcAg10vf4198.png”);
因为在这里,group1 重复了,所以我们要删除一个。
再输入 System.out.println(group1); 打印
打印结果如图所示,其中 “file_size = 187394” 表示文件的大小, 2018-04-09 02:28:25 表示文件创办的时间。
(2)将整个文件的 ID 传入
FileInfogroup1= client.query_file_infol(“group1/M00/00/02/wKh1QFrKX0mATW_LAALcAg10vf4198.png”)
2.查询文件元信息的方法:
如图,有两个 get_metadata , 我们选择选用上方的文件的 ID ,将文件的 ID 上传。
client.get_metadatal(“group1/M00/00/02/wKh1QFrKX0mATW_LAALcAg10vf4198.png”);
回车后就可以看到其原信息。
将它打印一下:
System.out.println(metadatal);
然后我们再加一个断点
如图所示,在 metadata1 中有所存储的两个文件,因此可以从数组中将它们取出来。
trackerServer.close();
} catch (Exception ex) {
ex.printStackTrace();
} //关闭 trackerServer 的连接
二.下载文件上传
此代码与查询文件上传的代码相似,只需在 API 处改为 download 。
Public void testDownload(){
try{
//加载 fastDFS 客户端的配置文件
ClientGlobal.initByProperties(“config/fastdfs-client.properties”); //加载的即为括号里的配置文件内容
System.out.println(“network_timeout=”+ ClientGlobal.g_network_timeout + “ms”);
TrackerClient tracker = new TrackerClient();//创建 tracker 的客户端,提供了 tracker 的类,通过此类就可以访问它。
TrackerServer trackerServer = tracker.getConnection();//客户端可以通过获取连接来获取 storage 服务
StorageServer storageServer =nu11;//定义 storage 客户端。因为 storage 既要访问 tracker 又要访问 storage ,所以有两个客户端。
storageClient1 client = new storageClient1(trackerServer,storageServer);
下载:
client.download_filel(“group1/M00/00/02/wKh1QFrKX0mATW_LAALcAg10vf4198.png”);
回车后就可以得到文件的字节,只需再创造一个输出流即可下载
首先创造一个文件,
File file = new File(“d:/a.png(所存储的文件的位置)”);
然后创造一个输出流,
FileOutputStream fileOutputStream = new FileOutputStream (file);
fileOutputStream.write(bytes);
fileOutputStream.close(); //关闭 trackerServer 的连接
如图所示,只有在执行下载之后,所下载的文件才会出现在本机盘中。
trackerServer.close();
} catch (Exception ex) {
ex.printStackTrace();
} //关闭 trackerServer 的连接



