fastDFS分布式文件系统--文件上传/下载/查询完整代码实现
搭建环境
这里我们使用javaApi测试文件的上传,java版本的fastdfs-client地址在: https://github.com/happyfish100/fastdfs-client-java,参考此工程编写测试用例。
1)创建maven工程
pom.xml
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <groupId>com.xuecheng</groupId> <artifactId>test‐fastDSF</artifactId> <version>1.0‐SNAPSHOT</version> <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> </parent>
2) 配置 文件
在classpath:config下创建fastdfs-client.properties文件
fastdfs.connect_timeout_in_seconds = 5 #http连接超时时间 fastdfs.network_timeout_in_seconds = 30 #tracker与storage网络通信超时时间 fastdfs.charset = UTF‐8 #字符编码 fastdfs.tracker_servers = 192.168.101.64:22122 #tracker服务器地址,多个地址中间用英文逗号分隔
文件上传
//上传文件@Testpublic 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 ServerTrackerServer ts = tc.getConnection();if (ts == null) {System.out.println("getConnection return null");return;}//获取一个storage serverStorageServer 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();}}
文件查询
//查询文件 @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); }
文件下载
//下载文件@Testpublic 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();}
fastDFS分布式文件系统--文件上传/下载/查询完整代码实现相关推荐
- C++:FTP文件上传下载(附完整源码)
C++:FTP文件上传下载 FTP文件下载 FTP文件上传 FTP文件下载 #include #include #include #pragma comment(lib, "WinInet. ...
- FastDFS(分布式文件系统)图片上传
一.什么是FastDFS FastDFS是由淘宝的余庆先生所开发的一个开源的分布式文件系统.用纯C语言开发,功能丰富: 文件存储 文件同步 文件访问(上传.下载) 存取负载均衡 在线扩容 适合有大容量 ...
- Ajax 文件上传(前后端完整代码,注意修改文件保存路径\访问路径)
一.前端代码: ① html 代码: 注意:如需要选择多个文件,进行上传,Ⅰ.multiple="multiple" 不能省 Ⅱ.选择时是 Ctrl + 你所要选择的文件,不要分多 ...
- 文件上传到服务器 完整代码,上传文件到服务器 前端+后台代码
不是原创,但有必要记录一下,免得每次都找的很辛苦 html Select a File to Upload js function fileSelected() { var file = docume ...
- SpringMVC之拦截器和文件上传下载
过滤器与拦截器的区别:拦截器是AOP思想的具体应用. 过滤器 : servlet规范中的一部分,任何java web工程都可以使用 在url-pattern中配置了/*之后,可以对所有要访问的资源进行 ...
- 关于SpringMVC框架实现简单的文件上传下载(ssm)
关于ssm框架整合文件的上传和下载. 首先来看单个附件的上传和下载: 1.首先创建一个用来测试的jsp文件上传下载的页面 代码如下 <%@ page language="java&q ...
- webservice文件上传下载
使用DataHandler实现webservice的文件上传下载 服务端代码: package com.hello.weChat.controller;import javax.activation. ...
- FastDFS 设计理念、文件上传、下载、同步、删除和断点续传原理
一.FastDFS 系统架构和功能原理 1.架构详解 storage server:存储服务器(又称存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上.Storage s ...
- SB_5_瑞吉外卖_4_文件上传下载_菜品新增_菜品分页查询_菜品修改
瑞吉外卖-Day04 课程内容 文件上传下载 菜品新增 菜品分页查询 菜品修改 1. 文件上传下载 1.1 上传介绍 1.1.1 概述 文件上传,也称为upload,是指将本地图片.视频.音频等文件上 ...
最新文章
- java创建线程安全的集合
- python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
- 鼠标一点打开几个网页
- Leetcode 300 最长递增子序列 (每日一题 20210803)
- Java里的容器存放的元素必须是1个对象.
- 完美解决Ubuntu16.04虚拟机窗口自适应问题
- VC6.0 DLL项目与WINDOWS项目的转换
- 【Linux】 Linux 系统文件相关的操作命令
- SAP Cloud for Customer和Hybris Commerce的session保护机制
- CRM, C4C和SAP Hybris的数据库层设计
- BZOJ 3282 Link Cut Tree (LCT)
- 学习成为一个IT架构师
- Windows 命令行基础(博主推荐)
- 完美解决PHP、AJAX跨域问题
- 电脑重启桌面 计算机图标消失,电脑重启后桌面图标不见了怎么解决
- 那智机器人带CClink模块和三菱Q系列PLC通信
- ES6新增API - Reflect
- 如何在电脑上复制微信文章图片
- visio添加外键约束
- 互动广告助您抢量成功