前言:在GItHub上(地址:https://github.com/happyfish100),作者提供了fastdfs-client-java源码,源码里面提供了操作FastDFS的工具类,所以我们接下来操作要引用源码里面的工具类。
方式一:我们可以直接将下载的fastdfs-client-java源码编译打包,最后将jar包导入maven仓库本地存储目录,然后在项目中引用该jar。
方式二:在项目中引入maven仓库服务器中的fastdfs-client-java依赖,依赖将自动下载到本地仓库,最便捷的方法,接下来我们使用该方法完成测试。
1、新建maven工程,这里命名为:Java_FastDFS_Tools
2、编辑工程pom文件,引入依赖,在文件中添加如下内容:

<dependencies><!--引入FastDFS工具类--><dependency><groupId>cn.bestwu</groupId><artifactId>fastdfs-client-java</artifactId><version>1.27</version></dependency><!--引入testng单元测试--><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>RELEASE</version></dependency><!--引入IO工具类库--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>
</dependencies>

3、在类路径下创建配置文件,引入的jar包中有模板,改一下就好:fdfs_client.conf

connect_timeout = 2
network_timeout = 30
charset = UTF-8
# Tracker配置文件中配置的http端口
http.tracker_http_port = 80
http.anti_steal_token = no
http.secret_key = FastDFS1234567890
# Tracker服务器地址
tracker_server = 192.168.105.133:22122
tracker_server = 192.168.105.134:22122

4、创建Java_Tools类,使用单元测试测试文件上传和下载

import org.apache.commons.io.IOUtils;
import org.csource.common.MyException;
import org.csource.fastdfs.*;
import org.testng.annotations.Test;import java.io.FileOutputStream;
import java.io.IOException;public class Java_Tools {// 本地文件位置String local = "C:\\Users\\XY\\Documents\\上传.txt";// 声明跟踪器客户端对象TrackerClient trackerClient = null;// 声明存储器客户端对象StorageClient1 storageClient1 = null;// 声明跟踪器服务对象TrackerServer trackerServer = null;// 声明存储器服务对象StorageServer storageServer = null;// 文件上传@Testpublic void testUpload() {try {// 初始化配置文件ClientGlobal.init("fdfs_client.conf");// 创建跟踪器客户端对象trackerClient = new TrackerClient();// 获取跟踪器连接trackerServer = trackerClient.getConnection();// 获取存储器客户端对象storageClient1 = new StorageClient1(trackerServer, storageServer);// 上传文件,返回文件标识String index = storageClient1.upload_file1(local, null, null);// 查看标识System.out.println(index);} catch (IOException e) {e.printStackTrace();} catch (MyException e) {e.printStackTrace();}}// 文件下载@Testpublic void testDownload() {try {ClientGlobal.init("fdfs_client.conf");trackerClient = new TrackerClient();trackerServer = trackerClient.getConnection();storageClient1 = new StorageClient1(trackerServer, storageServer);// 根据文件标识下载文件byte[] by = storageClient1.download_file1("group1/M00/00/00/wKhphVrxnTeAPEznAANfM1yHJic535.txt");// 将数据写入输出流IOUtils.write(by, new FileOutputStream("C:\\Users\\XY\\Documents\\下载.txt"));} catch (IOException e) {e.printStackTrace();} catch (MyException e) {e.printStackTrace();}}// 文件删除@Testpublic void testDelete() {try {ClientGlobal.init("fdfs_client.conf");trackerClient = new TrackerClient();trackerServer = trackerClient.getConnection();storageClient1 = new StorageClient1(trackerServer, storageServer);// 根据文件标识删除文件,返回0则删除成功int i = storageClient1.delete_file1("group1/M00/00/00/wKhphVry2QmAXgH2AANfM1yHJic724.txt");if (i == 0) {System.out.println("删除成功");} else {System.out.println("删除失败");}} catch (IOException e) {e.printStackTrace();} catch (MyException e) {e.printStackTrace();}}// 文件信息@Testpublic void testGetFileInfo() {try {ClientGlobal.init("fdfs_client.conf");trackerClient = new TrackerClient();trackerServer = trackerClient.getConnection();storageClient1 = new StorageClient1(trackerServer, storageServer);// 根据文件标识获取文件信息FileInfo fileInfo = storageClient1.get_file_info1("group1/M00/00/00/wKhphVry2QmAXgH2AANfM1yHJic724.txt");// 文件IP地址System.out.println(fileInfo.getSourceIpAddr());// 文件大小System.out.println(fileInfo.getFileSize());// 创建时间System.out.println(fileInfo.getCreateTimestamp());// 错误校验码System.out.println(fileInfo.getCrc32());} catch (IOException e) {e.printStackTrace();} catch (MyException e) {e.printStackTrace();}}
}

Java操作FastDFS实现文件上传和下载相关推荐

  1. java实现基于AmazonS3文件上传、下载、删除操作

    1.创建工具类 AwsS3Utils import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientExcept ...

  2. Java网络编程实现文件上传和下载案例详解

    客户端: 文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据 明确: 数据源:c:\1.jpg 目的地:服务器 实现步骤: 1.创建一个本地字节输入流FileInputStream ...

  3. java dispo lock_java实现文件上传和下载(1)

    原理: 使用html 的 标签,提交form 的几个属性必须为: method=post encType=multipart/form-data; 组件:smartUpload或者commons fi ...

  4. java struts 读取文件,java中Struts2 的文件上传和下载示例

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  5. 高薪程序员面试题精讲系列23之说一下如何实现文件上传、下载以及断点续传?

    一. 面试题及剖析 1. 今日面试题 在上一篇文章中,壹哥 给大家总结了I/O流相关的内容,复习了各种I/O流相关API.其实我们去面试的时候,面试官提问的前后两个题目之间往往会具有一定的关联性.比如 ...

  6. Mr.张小白(案例:基于Spring MVC实现文件上传和下载)

    基于Spring MVC实现文件上传和下载 一.步骤 1.引入相关依赖pom.xml <?xml version="1.0" encoding="UTF-8&quo ...

  7. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  8. java里面的文件上传与下载

    java里面的文件上传与下载 文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileuplo ...

  9. Java Web项目中遇到的文件上传与下载问题

    (转发自:https://www.cnblogs.com/xdp-gacl/p/4200090.html)   在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中 ...

最新文章

  1. opencv python 多帧降噪算法_防抖技术 | OpenCV实现视频稳流
  2. javascript之温习闭包
  3. 使用Python操作MySQL数据库
  4. 实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型 转载 2017年12月27日 00:00:00 109 翻译 | AI科技大本营 参与 | 王赫 上个月,我有幸结识了 DeepCogn
  5. Microsoft 顺序分析和聚类分析算法
  6. 支付宝不止怀有“社交梦”,社区金融才是它的野心所在
  7. POJ-1845 Sumdiv 逆元,特殊情况
  8. 分析一下shell(转)
  9. 在Nginx/Tengine服务器上安装SSL证书
  10. 哪17个人被约谈_蚂蚁上市暂缓约谈,70万中签股民彻夜无眠,是喜还是忧?(附股)...
  11. Android 第三方
  12. Node.js + React + MongoDB 实现 TodoList 单页应用
  13. 深入浅出python学习
  14. C case和UVM TB的交互,tube_print, event_sync
  15. 一次和前端的相互甩锅的问题记录
  16. 机房部署以及机房环境
  17. docker下安装mysql_Docker下安装MySQL
  18. 【蓝蜗牛】骨龄检测(一)
  19. Mysql 1607错误
  20. 一个想让你承认是Gay的“勒索版”远控木马Swamp分析

热门文章

  1. PaddlePaddle预训练模型大合集,还有官方使用说明书
  2. 微信平台开发与微信营销
  3. hdfs 指令_HDFS常用命令操作
  4. Scale-Equalizing Pyramid Convolution for Object Detection 论文笔记
  5. PACS-医学影像(二)
  6. python第七章动手试一试_Python编程:从入门到实践的动手试一试答案(第七章)...
  7. 金融学习之五——求解证券投资组合比例
  8. 计算机毕业设计Node.js+Vue酒店管理系统(程序+源码+LW+部署)
  9. 第一次学游泳技巧_『陪否』体育 | 自己游泳有哪些游泳技巧?适合所有人的游泳视频技巧教学...
  10. Gitk 查看记录时中文乱码的其中一种设置方式