Java fastdfs客户端实现上传下载文件

一、项目结构

二、pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.example</groupId>
  <artifactId>A01fastdfs</artifactId>
  <version>1.0-SNAPSHOT</version>

  <dependencies>
    <!-- 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>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.3.2</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.9</source>
          <target>1.9</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

三、fastdfs-client.properties

#http连接超时时间
fastdfs.connect_timeout_in_seconds=5
#tracker和storage网络通信超时时间
fastdfs.network_timeout_in_seconds=30
#字符编码
fastdfs.charset=utf-8
#tracker服务器地址,多个地址中间用英文逗号分隔
fastdfs.tracker_servers=192.168.2.105:22122

四、测试

package com.wuxi.test;

import org.csource.fastdfs.*;
import org.junit.Test;

import java.io.File;
import java.io.FileOutputStream;

public class MyTest {
  //上传文件
  @Test
  public void testUpload() {
    try {
      //加载fastdfs-client.properties配置文件
      ClientGlobal.initByProperties("config/fastdfs-client.properties");
      //定义TrackerClient,用于请求TrackerServer
      TrackerClient trackerClient = new TrackerClient();
      //连接tracker
      TrackerServer trackerServer = trackerClient.getConnection();
      //获取storage
      StorageServer storeStorage = trackerClient.getStoreStorage(trackerServer);
      //创建storageClient
      StorageClient1 storageClient1 = new StorageClient1(trackerServer, storeStorage);
      //向storage服务器上传文件
      //本地文件的路径
      String path = "F:/java/resource/data.txt";
      //上传成功后拿到文件Id
      String fileId = storageClient1.upload_file1(path, "txt", null);
      System.out.println(fileId);//group1/M00/00/00/wKgCaV9vaSaARBTKAAAAGjJpL2g017.txt
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  //下载文件
  @Test
  public void testDownload() {
    try {
      //加载fastdfs-client.properties配置文件
      ClientGlobal.initByProperties("config/fastdfs-client.properties");
      //定义TrackerClient,用于请求TrackerServer
      TrackerClient trackerClient = new TrackerClient();
      //连接tracker
      TrackerServer trackerServer = trackerClient.getConnection();
      //获取storage
      StorageServer storeStorage = trackerClient.getStoreStorage(trackerServer);
      //创建storageClient
      StorageClient1 storageClient1 = new StorageClient1(trackerServer, storeStorage);
      //下载文件
      //文件id
      String fileId = "group1/M00/00/00/wKgCaV9vaSaARBTKAAAAGjJpL2g017.txt";
      byte[] bytes = storageClient1.download_file1(fileId);
      //使用输出流保存文件
      FileOutputStream fileOutputStream = new FileOutputStream(new File("F:/data.txt"));
      fileOutputStream.write(bytes);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java高级架构之FastDFS分布式文件集群详解

    FastDFS简介 FastDFS是一款开源的轻量级分布式文件系统,使用C实现,支持Linux.BSD等unix-like操作系统.值得注意的是,fastdfs并不是通用的文件系统,只能通过专用的API访问. fastdfs为互联网应用量身定做,解决了大容量文件存储的问题,fastdfs追求高性能和高扩展性.fastdfs的主要概念: tracker-server:跟踪服务器.用于跟踪文件,主要起调度作用.在内存中记录了所有存储组和存储服务器的状态信息,是客户端和数据存储的主要枢纽.相比GFS更

  • SpringBoot整合FastDFS方法过程详解

    一.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM

  • Centos7配置fastdfs和nginx分布式文件存储系统实现过程解析

    1.安装libfastcommon-1.0.43,安装包可以在大佬的https://github.com/happyfish100/libfastcommon/releases下载 [root@localhost Downloads]# tar -zxvf libfastcommon-1.0.43.tar.gz # 解压后进入目录进行编译并安装 [root@localhost libfastcommon-1.0.43]#cd libfastcommon-1.0.43 [root@localhos

  • Docker部署FastDFS的实现方法

    Docker 安装fastdfs 挂载目录 -v /e/fdfs/tracker:/var/fdfs /e/fdfs/tracker 在 windows 中的文件夹路径为 E:\fdfs\tracker /var/fdfs 为容器中的文件的绝对路径 查看网络 docker network ls # 网络列表 docker network create --driver bridge --subnet=192.168.127.0/24 fastdfs_fastdfs_net # 创建自定义网段 暂

  • Java中文件管理系统FastDFS详解

    什么是FastDFS 很多以文件为载体的在线服务,如相册网站.视频网站等,都需要对文件进行管理,包括文件的存储.同步.访问(文件上传.文件下载)等,同时肯定会伴随着大容量存储和负载均衡的问题. 在日常的一些项目中,比如做用户的KYC认证等,也需要存储文件.图片.视频等.此时可以选择使用OSS云服务,也可以自己构建相对专业的文件管理系统. FastDFS是一个开源的轻量级分布式文件系统,用于解决大数据量存储和负载均衡等问题,并需要通过专有API进行访问.满足大容量文件存储问题,并保证高性能和高扩展

  • java fastdfs客户端使用实例代码

    本文研究的主要是java fastdfs客户端使用实例的相关内容,具体实现如下. 什么是FastDFS? FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务. FastDFS架构 FastDFS架构包括 Tracker server和Storage server.客户端请求Tracker server进行文件

  • Spring boot集成Go-FastDFS实现图片上传删除等功能实现

    一.背景 工作中接触到需要采集并管理大量图片的需求,本来是用的FastDFS,但是发现实际情况是在项目实施时难以找到linux服务器去安装FastDFS,所以经过调研,选择了可以在windows服务器上安装部署的Go-FastDFS文件服务器 二.Go-FastDFS简介 go-fastdfs是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,它具有高性能.高可靠.无中心.免维护等优点. 三.安装Go-FastDFS文件服务器 1)下载

  • Java fastdfs客户端实现上传下载文件

    一.项目结构 二.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

  • Qt QFtp客户端实现上传下载文件

    目录 1.简介 2.用到的主要类 2.1QNetworkReply 2.2QNetworkRequest 3.示例 3.1本地搭建一个FTP服务器. 3.2示例 1.简介 实现FTP客户端有几种方式. Qt4 QFtp类 Qt5 QNetworkAccessManager类 QNetworkAccessManager支持大多数的网络协议,比如http.ftp等,这里主要讲解QNetworkAccessManager实现的FTP客户端. 需要添加 Qt += network 模块. 2.用到的主要

  • Java通过FTP服务器上传下载文件的方法

    对于使用文件进行交换数据的应用来说,使用FTP 服务器是一个很不错的解决方案. 关于FileZilla Server服务器的详细搭建配置过程,详情请见FileZilla Server安装配置教程.之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲测上传2G的文件到FileZilla Server都没有该问题,朋友们可以放心使用该代码. FavFTPUtil.Java package com.favccxx.favsoft.util; import jav

  • 基于Java写minio客户端实现上传下载文件

    前言: 确保已经安装了minio的服务端 代码: pom.xml <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.0.2</version> </dependency> application.yml server: port:90 minio: url: http://10.69.94.140

  • Java Spring MVC 上传下载文件配置及controller方法详解

    下载: 1.在spring-mvc中配置(用于100M以下的文件下载) <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!--配置下载返回类型--> <bean class="or

  • JAVA技术实现上传下载文件到FTP服务器(完整)

    具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见 FileZilla Server安装配置教程 .之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲

  • java webservice上传下载文件代码分享

    本文实例为大家分享了java webservice上传下载文件代码,供大家参考,具体内容如下 1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Date; import java.text.Simple

  • Java操作FTP实现上传下载功能

    目录 FTP简介 FTP架构 FTP数据连接模式 用户认证 客户端 Vsftp安装与配置 启动服务 配置文件说明 传输模式配置 系统用户配置 java操作ftp文件服务器 1.引入依赖 2.提供接口 3.对提供操作ftp接口进行实现 4.配置ftp相关参数 5.写测试controller FTP简介 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层,TCP 模型的第四层, 即应用层, 使用 TCP 传输而

  • java实现简单图片上传下载功能

    本文实例为大家分享了java实现简单图片上传下载的具体代码,供大家参考,具体内容如下 1.首先在上传图片界面:将form表单的enctype改为:multipart/form-data 2.定义一个实体类用来将存放图片存放的路径存入到mysql中private String imgpath; 3.在spring容器中注入处理图片的解析器 <bean name="multipartResolver" class="org.springframework.web.multi

  • SpringMVC实现上传下载文件

    本文实例为大家分享了SpringMVC实现上传下载文件的具体代码,供大家参考,具体内容如下 一.SpringMVC专门提供了CommonsMultipartResolver组件用于文件上传: (1)maxUploadSize 文件最大限制,单位是byte(2)maxInMemorySize 低于这个大小的文件暂存内存中(3)defaultEncoding 默认编码utf-8 必须在spring-mvc.xml文件 <!-- (2)配置 MultipartResolver 实现文件上传     

随机推荐