FastDFS-02-JavaAPI

2023-11-06

我是码赛客1024,本节我们来使用java调用FastDFS进行文件上传等操作。

一、介绍

在上一章节,咱们搭建好了fastdfs服务器,并实现了基于命令的上传测试和web访问。本节,咱们使用Java来调用API实现上传文件到FastDFS。

二、fastdfs-client-java客户端

2.1 准备fastdfs-client-java的包

fastdfs-client-java 是fastdfs官方提供的客户端,但是该jar包在maven仓库中没有,需要我们手动安装到本地库后才能导入使用。

① 下载源码,地址:https://github.com/happyfish100/fastdfs-client-java
或者qq群(1109193029)中下载,github下载会比较慢。
在这里插入图片描述
② 解压,并使用cmd进入目录
在这里插入图片描述

③ 编译:mvn clean install
在这里插入图片描述

④ 安装成功
在这里插入图片描述
⑤ 使用如下坐标,导入项目即可

<dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client-java</artifactId>
    <version>1.29-SNAPSHOT</version>
</dependency>

2.2 创建SpringBoot项目

2.2.1 相关依赖

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.10</version>
    <relativePath/> 
</parent>
...
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- fastdfs-client-java 依赖-->
    <dependency>
        <groupId>org.csource</groupId>
        <artifactId>fastdfs-client-java</artifactId>
        <version>1.29-SNAPSHOT</version>
    </dependency>
</dependencies>

application.yml

spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 5MB      # 上传文件单个限制

2.2.2 准备页面

resources\static\upload.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
    <form id="fileForm" action="/upload" method="post" enctype="multipart/form-data">
        选择文件:<input type="file" name="file"&g
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FastDFS-02-JavaAPI 的相关文章

  • 点击 Java Web 服务:curl 或 URLConnection

    我使用的 Java 服务器在以下 URL 上公开 RESTful API http localhost 8080 my server 文档建议使用curl用于提交简单的PUT请求 文件上传 并强烈建议用户使用与示例中提供的完全相同的参数 所
  • 如何在 Spring 中从 application.properties 重新加载 @Value 属性? [复制]

    这个问题在这里已经有答案了 我有一个spring boot应用 在run文件夹下 有一个额外的配置文件 dir config application properties 当应用程序启动时 它使用文件中的值并将它们注入到 Value my
  • 何时在java中使用get/set方法[重复]

    这个问题在这里已经有答案了 我想知道何时在我的类中使用 get 和 set 方法 getName setName 以及何时简单classVariable name 反而 classVariable getName 这是使用 set 和 ge
  • Spring 应用程序启动前的 Spring Boot 设置日志记录

    我有一个项目 在启动 SpringApplication 之前需要日志记录机制 我怎样才能做到这一点 我尝试设置自己的日志记录机制 LogManager getLogManager readConfiguration 但在 Spring 应
  • Java 应用程序可以检测到调试器已连接吗?

    我知道 jvm 启动选项可以让 jvm 等待附加调试器 这不是我在这里的意思 是否有可能从 Java 代码中也检测调试器的附件 以便我可以例如编写一个正在执行某些操作的 脚本 然后在某个时刻让我的应用程序等待调试器 不会 这些选项是 JVM
  • 使用 iText 在内存上生成在磁盘上生成的 PDF

    我正在从 Java 应用程序生成 PDF 并且效果很好 问题是 PDF 在磁盘上生成为 Document documento new Document PageSize A4 25 25 25 25 PdfWriter writer Pdf
  • 为什么LocalSessionFactoryBean不实现getCurrentSession,而SessionFactory的实例却可以调用该方法?

    这是我的 Spring Bean 配置
  • 如何在 JAVA servlet 中处理压缩 (gzip) HTTP 请求(不是响应) - 简单示例?

    我为这个问题苦苦挣扎了很长一段时间 在找到一个简单的解决方案后 想问一个问题和答案 这个问题在堆栈溢出时以不同的方式被多次提出 并且accepted solutions是partially correct and complex或谈论res
  • 为什么 Java 类加载器找不到我的接口?

    在下面的代码中 我使用动态生成一个类sun tools javac Main 我将使用反射创建此类的新实例 问题是 我想避免使用 Reflection 来调用我为此类定义的方法 因此我创建了一个 ProxyInvoker 来引用我在项目中定
  • Java SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 给出时区作为 IST

    我有 SimpleDateFormat 构造函数作为 SimpleDateFormat yyyy MM dd T HH mm ss Z 我正在解析字符串 2013 09 29T18 46 19Z 我读到这里 Z 代表GMT UTC时区 但是
  • Java 8 流排序字符串列表[重复]

    这个问题在这里已经有答案了 我正在流上调用排序方法 java 文档说 Sorted 方法返回一个由该流的元素组成的流 并根据自然顺序排序 但是当我运行下面的代码时 List
  • swing - 在 JPanel 上单击组件

    好的 我有一个带有 GridLayout 的 JPanel 网格的每个单元格都包含另一个 JPanel 我希望能够做的是在 下方 JPanel 上有一个侦听器 然后它告诉我单击了哪个 覆盖 JPanel 这样我就可以对它和周围的 JPane
  • 使用pdfbox从pdf中提取图像

    我正在尝试使用 pdfbox 从 pdf 中提取图像 示例 pdfhere http www ignou ac in upload questionpaper CS 74 PDF 但我只得到空白图像 我正在尝试的代码 public stat
  • 如何在使用 Web 服务时获取会话对象?

    如何在使用 Web 服务时获取会话对象 服务在两个程序之间调用 如何在使用 Web 服务时获取用户会话对象 不可能使用请求对象获取会话 因为当我们谈论服务时不会有请求或响应 如果您正在与JAX WS https jax ws dev jav
  • maven默认过滤器目录的好处[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我发现了maven资源过滤并在文档中看到了一条注释 标准目录布局src main filters 资源过滤器文件 我注意到maven不搜索声
  • 多少次函数调用会导致堆栈溢出

    你好 Android Java 开发者 当一个函数调用一个函数并且该函数调用另一个函数等等时 有多少次调用 堆栈长度 会让我陷入堆栈溢出 有一般经验法则吗 我问的原因是因为我现在对于我的 5 人纸牌游戏来说哪个更有效 设计明智 解决方案一
  • Java 有现成的时钟同步解决方案吗?

    我们有一个大型的高性能软件系统 它由多个交互的 Java 进程 不是 EJB 组成 每个进程可以在同一台机器上 也可以在不同的机器上 某些事件在一个进程中生成 然后以不同的方式传播到其他进程以进行进一步处理等 出于基准测试的目的 我们需要创
  • 线程缓存和 Java 内存模型

    我正在尝试了解 Java 内存模型和线程 据我了解 每个线程都有 主 内存的本地副本 因此 如果一个线程尝试更改int变量 例如某个对象的变量 它会缓存int变量 如果它更改它 其他线程可能看不到更改 但是如果线程缓存一些对象而不是 int
  • JFrame 类型的方法 ... 未定义

    我正在尝试制作一个带有两个菜单列表的 gui 每个菜单列表有 3 个项目 我的问题是 当我单击某个项目时 出现错误 JFrame 类型的方法 displayList int AirplaneList 未定义 AirplaneControll
  • 如何使用 Spring Security 手动注销用户?

    也许答案很简单 如何在 Spring Security 中手动注销当前登录的用户 拨打电话是否足够 SecurityContextHolder getContext getAuthentication setAuthenticated fa

随机推荐

  • Spring源码分析(四)Bean生命周期源码分析2:合并BeanDefinition、FactoryBean

    Spring容器启动 扫描得到所有BeanDefinition之后 就会先实例化所有非懒加载的单例Bean的 入口 Spring容器启动刷新的方法里 org springframework context support AbstractA
  • 烂怂if-else代码优化方案

    0 问题概述 代码可读性是衡量代码质量的重要标准 可读性也是可维护性 可扩展性的保证 因为代码是连接程序员和机器的中间桥梁 要对双边友好 Quora 上有一个帖子 What are some of the most basic things
  • 【神经网络】图解LSTM和GRU

    图解LSTM和GRU 1 问题 循环神经网络 RNN Recurrent Neural Network 受到短期记忆的影响 如果一个序列足够长 就很难将早期产生的信息带到后续的步骤中来 因此 如果试图处理一段文字来做预测 RNN可能会从一开
  • 使用rke搭建k8s集群

    1 下载rke 选择合适的版本 https github com rancher rke 下载后上传到服务器 修改为rke 且移动号可执行目录 mv rke linux amd64 usr local bin rke 修改为可执行权限 ch
  • markdown+CSDN+Typora+知乎+微信公众号最佳偷懒写作方法

    目录 markdown 思想 适用范畴 基本语法 重点语法 高级语法 Typora 补充工具 公式编辑 保存和导出 导入 定制化主题 图片拖拽 超链接 列表 LaTex 公式 表格 生成目录 编辑模式 导出与公众号 md与CSDN 导入 导
  • 用户留存分析—SQL

    SELECT log day 日期 count user id day0 新增数量 count user id day1 count user id day0 次日留存率 count user id day3 count user id d
  • 星罗棋布:关于VPS测试脚本集锦内容

    2021 09 25 更新 优化排版 引言 莫忧世事兼身事 须著人间比梦间 勿埋我心 当我们获得一个服务器后 会想知道它的性能如何 宝塔自带跑分的应用 但是测试的数据比较片面 所以就有了各种各样的测试脚本 勿埋我心带你了解一下有哪些常用的V
  • VMware安装win10系统的心路历程

    友情提示 尽量使用原版或别人用过的 很早之前使用VMware装过win2008和centos7 都是傻瓜安装 没想到这次安装win10一点都不傻瓜 软件版本 VMware Workstation 15 Pro 1 按照常识先下载iso文件
  • hive建表

    https blog csdn net wgyzzzz article details 107446435 一 hive建表语法 二 hive外部表 1 准备测试数据 放入虚拟机 data目录下 2 创建外部表 3 装载数据 4 查询tes
  • unity使用setTrigger需注意地方

    使用上可以参考另一篇文章 RPG游戏主角状态机 Trigger触发器 注意都是从Any State开始的 否则你在使用Aniamtor的Trigger参数触发时没反应
  • 网页开发基础常见html、css

    目录 HTML基础 一 段落 行内和换行标签 二 文本样式标签 三 表格标签 四 表单标签 五 多行文本标签 六 列表标签 七 超链接标签 八 图像标签 HTML基础 html语言基本格式 常用的HTML标签 一 段落 行内和换行标签 二
  • 我为什么不在乎人工智能

    有人听说我想创业 给我提出了一些 忽悠 的办法 他们说 既然你是程序语言专家 而现在人工智能 AI 又非常热 那你其实可以搞一个 自动编程系统 号称可以自动生成程序 取代程序员的工作 节省许许多多的人力支出 这样就可以趁着 AI 热 拉到投
  • 记录一下:使用 python -m SimpleHTTPServer 快速搭建http服务

    为什么80 的码农都做不了架构师 gt gt gt 在 Linux 服务器上或安装了 Python 的机器上 Python自带了一个WEB服务器 SimpleHTTPServer 我们可以很简单的使用 python m SimpleHTTP
  • WinForm显示3D图(Sharpgl)

    总述 Sharpgl是 NET平台的Opengl 可以用来绘画 展示3D图 本文将介绍如何显示SOlidWorks等软件制作的3D模型 安装Sharpgl 下载SharpGL vsix文件并点击安装 VS中就会有相应的项目出现了 之后创建工
  • C语言(Head First C)-7:数据结构与动态存储

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 7 数据结构与动态存储 一个结构根本不够 本章内容 1 如何用结构指针吧自定义数据类型连接成复杂的大型数据结构 通过创建链表探索其中的基本原理 2 通过在堆上动态分配
  • Jmeter元件正则表达式提取Response headers的数据

    本文以cookie提取为例来介绍用正则表达式如何提取Response headers的数据 实际cookie的获取只需要一个cookies管理器即可 jmeter会自动获取cookie 如果是用正则表达式提取Response headers
  • 基于深度学习的推荐系统(一)

    本文主要介绍推荐系统基本概念以及基本的协同过滤算法原理 推荐系统 快速有效地从复杂的数据中获取有价值的信息成为大数据大战的关键难题 推荐系统根据用户需求与兴趣 通过推荐算法从海量数据中挖掘出用户感兴趣的项目 如信息 服务 物品 将结果以个性
  • 前端基础知识6

    谈谈你对语义化标签的理解 语义化标签就是具有语义的标签 它可以清晰地向我们展示它的作用和用途 清晰的代码结构 在页面没有css的情况下 也能够呈现出清晰的代码内容 有利于SEO 爬虫依赖标签来确定关键字的权重 因此可以和搜索引擎建立良好的沟
  • SpringBoot 2.2.5 使用@ID 避坑指南

    1 如果你的数据库中没有主键 在你指定 ID的时候这个指必须是唯一的而且不能为null 如果不唯一 你数据库有6个数据 选为主键的字段 distinc一下有2个 那么就会3 3的重复 如果为null 则映射出来的bean中有null
  • FastDFS-02-JavaAPI

    我是码赛客1024 本节我们来使用java调用FastDFS进行文件上传等操作 一 介绍 在上一章节 咱们搭建好了fastdfs服务器 并实现了基于命令的上传测试和web访问 本节 咱们使用Java来调用API实现上传文件到FastDFS