前言:在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. CountDownLatch应用及原理
  2. 如何估算代码量_没有量杯,没有称,如何估算碳水化合物?
  3. 为何要清除浮动?如何清除?
  4. asp net html.dropdownlist viewdata 指定选中项_ASP.NET Web API基础(05)--- 基于JWT的身份认证 - 高原秃鹫...
  5. linux环境重装rabbitmq,Linux系统安装RabbitMQ详细教程-Go语言中文社区
  6. 怎么保证读取最新数据_摄影师的数据存储有多难,怎么存储大量数据并保证安全高速防水防摔防尘?SanDisk...
  7. eclipse安装emmet之后ctrl+d热键冲突的解决方法
  8. RabbitMQ工作模式Publish/Subscribe发布订阅,test测试代码
  9. building for iOS simulator, but linking in object file built for tvOS, for architecture x86_64
  10. 集合数组集合ArrayList
  11. Nature命名规范
  12. Linux的web视频服务器的构建 (chinaitlab)
  13. 通过高德地图获取 经纬度 以及地理位置等
  14. SU(Seismic Unix)之sgy格式与su格式相互转化
  15. 磁盘分区方式对比(MBR与GPT)
  16. 计算机关机时间设置方法,电脑如何设置定时关机 电脑定时关机设置方法
  17. C语言:简易商品库存管理系统(简单易懂,不用指针的入门级示例,数据结构大作业)
  18. TL民营医院奖金分配方案比较研究
  19. 银行卡被冻结 应该怎么处理?
  20. unity aces_评论:UiPath Aces机器人流程自动化

热门文章

  1. EMOS在线协同办公小程序解决Illegal instruction
  2. 华为HCNA之交换机基础配置实验
  3. 华为HCNA实验11-配置直连路由
  4. (2019)通过机器学习从建筑物中的Wi-Fi数据推断居住人数
  5. android splash白屏_android app 优化启动体验, 不闪白屏并且快速展示 splash
  6. 从motion到定格,BX-Planet团队不断尝试商业动画广告新形式
  7. 蒙塔卡罗三扇门的实现
  8. str绑定值的结尾null字符缺失_关于null == 0该如何运用?
  9. 下载 线代 薛威_考研数学:选择了深巷子里的数学大神老师,我放心
  10. 网络工程实验标准ACL配置