springboot2.0如何通过fastdfs实现文件分布式上传

这篇文章主要介绍了springboot2.0如何通过fastdfs实现文件分布式上传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1. 引入依赖

在父工程中,我们已经管理了依赖,版本为:

<fastDFS.client.version>1.26.7</fastDFS.client.version>

因此,这里我们直接在工程的pom.xml中引入坐标即可:

<dependency>
  <groupId>com.github.tobato</groupId>
  <artifactId>fastdfs-client</artifactId>
</dependency>

@Configuration
@Import(FdfsClientConfig.class)
// 解决jmx重复注册bean的问题
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class FastClientImporter {
}

2. 在application.yml文件中编写FastDFS属性

fdfs:
 so-timeout: 1501 # 超时时间
 connect-timeout: 601 # 连接超时时间
 thumb-image: # 缩略图
  width: 60
  height: 60
 tracker-list: # tracker地址:你的虚拟机服务器地址+端口(默认是22122)
  - 192.168.0.22:22122

3. 测试

package com.leyou.upload.test;

import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.domain.fdfs.ThumbImageConfig;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

/**
 * @author john
 * @date 2019/12/6 - 15:09
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class FastDFSTest {

  @Autowired
  private FastFileStorageClient storageClient;

  @Autowired
  private ThumbImageConfig thumbImageConfig;

  @Test
  public void testUpload() throws FileNotFoundException {
    // 要上传的文件
    File file = new File("D:\\imooc\\project\\images\\1.jpg");
    // 上传并保存图片,参数:1-上传的文件流 2-文件的大小 3-文件的后缀 4-可以不管他
    StorePath storePath = this.storageClient.uploadFile(
        new FileInputStream(file), file.length(), "jpg", null);
    // 带分组的路径
    System.out.println(storePath.getFullPath());
    // 不带分组的路径
    System.out.println(storePath.getPath());
  }
  @Test
  public void testUploadAndCreateThumb() throws FileNotFoundException {
    File file = new File("D:\\imooc\\project\\images\\2.jpg");
    // 上传并且生成缩略图
    StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(
        new FileInputStream(file), file.length(), "png", null);
    // 带分组的路径
    System.out.println(storePath.getFullPath());
    // 不带分组的路径
    System.out.println(storePath.getPath());
    // 获取缩略图路径
    String path = thumbImageConfig.getThumbImagePath(storePath.getPath());
    System.out.println(path);
  }
}

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

(0)

相关推荐

  • 使用Nginx反向代理到go-fastdfs的方法示例

    背景 go-fastdfs是支持http协议的一款分布式文件系统,在一般的项目中,很少是直接将文件系统的地址暴露出来的,大多数都会通过nginx等软件进行反代过去,由于我司的业务和网络环境场景相对特殊,由公网部分(公有云)和内网部分(私有云)组成的混合云网络体系,公有云主要就是作为一个出口和入口以及运行一些审计认证等应用,对上游请求进行处理,从而减少私有云的处理次数,提升性能.那么也正是因为这样,在公网的环境下,要访问到私有云提供的服务则必须使用反向代理.同样道理,对于文件系统的访问也如此,如何

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

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

  • nginx的FastDFS分布式存储模块测试方法

    再回过头来看FastDFS更新很快,还看到fastdfs-nginx-module_v1.01.tar.gz nginx模块,所以今天在一台测试机上测试了·测试几天看稳定不稳定,在考虑换掉浪费资源的 lustre ! 环境: storage1:192.168.6.100 storage2:192.168.6.101 tracker:192.168.6.102 1. 在每个机器上,下载安装 FastDFS nginx $> wget http://fastdfs.googlecode.com/fi

  • FastDFS安装和配置整合Nginx-1.13.3的方法

    一:下载FastDFS 我们一共需要三个文件 1.FastDFS 分布式文件存储系统 下载地址:https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master 2.libfastcommon FastDFS函数库 下载地址:  https://codeload.github.com/happyfish100/libfastcommon/zip/master 3.fastdfs-nginx-module 连接Nginx

  • SpringBoot集成FastDFS+Nginx整合基于Token的防盗链的方法

    为什么要用SpringBoot? SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 创建独立的Spring应用程序 嵌入的Tomcat,无需部署WAR文件 简化Maven配置 自动配置Spring 提供生产就绪

  • 使用Spring Boot集成FastDFS的示例代码

    这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>

  • Fastdfs与nginx进行压缩图片比率

    在此先把前面自己做的那个功能在此分享下,是一个模仿淘宝的,希望大神们有什么想法可以不吝赐教: 自己是通过前面的参考配置lua与nginx的结合使用,利用脚本语言lua的强大特性和nginx的特性来实现这个功能,在nginx.conf的配置文件中加入如下代码: server { listen 22222; server_name localhost; # server_name somename alias another.alias; location /images/{ alias /root

  • springboot集成fastDfs过程代码实例

    这篇文章主要介绍了springboot集成fastDfs过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pom.xml 引入依赖 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.1-RELEASE</vers

  • 详解Docker与FastDFS的安装命令及使用

    Docker特点 1)上手快 用户只需要几分钟,就可以把自己的程序"Docker 化".Docker 依赖于"写时复制" (copy-on-write)模型,使修改应用程序也非常迅速,可以说达到"随心所致,代码即改" 的境界. 随后,就可以创建容器来运行应用程序了.大多数 Docker 容器只需要不到 1 秒中即可 启动.由于去除了管理程序的开销,Docker 容器拥有很高的性能,同时同一台宿主机中也 可以运行更多的容器,使用户尽可能的充分利用系

  • springboot2.0如何通过fastdfs实现文件分布式上传

    这篇文章主要介绍了springboot2.0如何通过fastdfs实现文件分布式上传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 引入依赖 在父工程中,我们已经管理了依赖,版本为: <fastDFS.client.version>1.26.7</fastDFS.client.version> 因此,这里我们直接在工程的pom.xml中引入坐标即可: <dependency> <groupId>com

  • Vue2.0结合webuploader实现文件分片上传功能

    Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么搞得那么麻烦,用分片上传? 分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度. 当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件.另外分片传输能够更加实时的跟踪上传进度. 实现后的界面: 主要是两个文件,封装的上传组件和具体的ui页面,上传组件代码下面有列出来

  • SpringBoot项目整合FastDFS+Nginx实现图片上传功能

    目录 FastDFS概述 Fastdfs原理 安装Fastdfs 整合Nginx模块 安装Nginx SpringBoot整合Fastdfs FastDFS概述 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等. FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用Fa

  • docker使用storage出现Exit导致文件无法上传服务器的问题及解决方案

    1.问题描述 安装在docker容器里面的storage一直处于退出状态,导致文件无法存储. 2.解决方案 查看docker中安装的容器 docker ps -a 尝试启动容器 docker start storage (或者 docker start "容器ID") 若尝试启动容器后,容器仍处于退出状态,将容器删除 docker container rm storage (或者 docker container rm "容器ID") 进入/var/fdfs文件夹,

  • Java实战之实现文件资料上传并生成缩略图

    目录 一:需求 二:如何实现需求,以及其中遇到的问题? 需求分析时遇到的问题 编码过程中遇到的问题 三:流程图与UML图 四:上传文件资料生成缩略图 1.上传图片生成缩略图--FastDFS 2.上传视频生成缩略图--javacv 3.上传PDF生成缩略图--pdfbox 4.封装好的方法 五:总结 一:需求 用户有一个需求就是收藏的功能,单纯的收藏记录好做,但是想加点难度就是,生成缩略图.类似B站的收藏一样. 二:如何实现需求,以及其中遇到的问题? 需求分析时遇到的问题 1.如何生成缩略图?

  • 原生javascript实现文件异步上传的实例讲解

    效果图: 代码:(demo33.jsp) <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>demo33.jsp</title> </head> <body> <label for="text">名称</label>

  • 表单上传功能实现 ajax文件异步上传

    项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一.jQuery官方下载地址:https://jquery.com/download/ 一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="multipart/form-d

  • jquery插件uploadify实现带进度条的文件批量上传

    有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案,分享给大家供大家参考,具体如下 先上效果图: 具体代码如下: 在页面中如下 完整页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <

  • java基于servlet的文件异步上传

    在这里使用了基于servlet的文件异步上传,好了废话不多说,直接上代码了... package com.future.zfs.util; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.s

  • Android Http实现文件的上传和下载

    最近做一个项目,其中涉及到文件的上传和下载功能,大家都知道,这个功能实现其实已经烂大街了,遂.直接从网上荡了一堆代码用,结果,发现网上的代码真是良莠不齐,不是写的不全面,就是有问题,于是自己重新整理了一番,把它们发出来,希望更多人能受用. 文件上传 通过org.apache.commons.httpclient.HttpClient来实现文件上传,该jar包可以直接从网上所搜.下载. /** * @param mContext 上下文 * @param targetUrl 文件上传地址 * @p

随机推荐