Java操作fastDFS
一、加入Maven依赖
<dependency>
<groupId>org.csource</groupId>
<artifactId>fastdfs-client-java</artifactId>
<version>1.27-SNAPSHOT</version>
</dependency>
二、客户端代码
@RunWith(SpringRunner.class)
@SpringBootTest
public class GmallManageWebApplicationTests {
@Test
public void contextLoads() throws IOException, MyException {
// 配置fdfs的全局链接地址
String tracker = GmallManageWebApplicationTests.class.getResource("/tracker.conf").getPath();// 获得配置文件的路径
ClientGlobal.init(tracker);
TrackerClient trackerClient = new TrackerClient();
// 获得一个trackerServer的实例
TrackerServer trackerServer = trackerClient.getConnection();
// 通过tracker获得一个Storage链接客户端
StorageClient storageClient = new StorageClient(trackerServer,null);
String[] uploadInfos = storageClient.upload_file("d:/a.jpg", "jpg", null);
String url = "http://192.168.2.128";
for (String uploadInfo : uploadInfos) {
url += "/"+uploadInfo;
//url = url + uploadInfo;
}
System.out.println(url);
}
}
tracker.conf
tracker_server=192.168.2.128:22122
# 连接超时时间,针对socket套接字函数connect,默认为30秒
connect_timeout=30000
# 网络通讯超时时间,默认是60秒
network_timeout=60000
控制台打印:
http://192.168.2.128/group1/M00/00/00/wKgCgF2xkrOANCrrAAxpifD7458779.jpg
此路径在浏览器中访问即可访问我们上传的图片。
工具类
public class PmsUploadUtil {
public static String uploadImage(MultipartFile multipartFile) {
String imgUrl = "http://192.168.2.128";
// 上传图片到服务器
// 配置fdfs的全局链接地址
String tracker = PmsUploadUtil.class.getResource("/tracker.conf").getPath();// 获得配置文件的路径
try {
ClientGlobal.init(tracker);
} catch (Exception e) {
e.printStackTrace();
}
TrackerClient trackerClient = new TrackerClient();
// 获得一个trackerServer的实例
TrackerServer trackerServer = null;
try {
trackerServer = trackerClient.getConnection();
} catch (IOException e) {
e.printStackTrace();
}
// 通过tracker获得一个Storage链接客户端
StorageClient storageClient = new StorageClient(trackerServer,null);
try {
byte[] bytes = multipartFile.getBytes();// 获得上传的二进制对象
// 获得文件后缀名
String originalFilename = multipartFile.getOriginalFilename();// a.jpg
System.out.println(originalFilename);
int i = originalFilename.lastIndexOf(".");
String extName = originalFilename.substring(i+1);
String[] uploadInfos = storageClient.upload_file(bytes, extName, null);
for (String uploadInfo : uploadInfos) {
imgUrl += "/"+uploadInfo;
}
} catch (Exception e) {
e.printStackTrace();
}
return imgUrl;
}
}
在springmvc文件上传控制器中我们只需要用MultipartFile multipartFile参数去接收就可以了。
Java操作fastDFS的更多相关文章
- coding++:java操作 FastDFS(上传 | 下载 | 删除)
开发工具 IDEAL2017 Springboot 1.5.21.RELEASE --------------------------------------------------------- ...
- coding++: java 操作FastDFS(上传 | 下载 | 删除)
package cn.com.soundrecording.controller; import cn.com.soundrecording.utils.FastDFSClient;import co ...
- Java 客户端操作 FastDFS 实现文件上传下载替换删除
FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...
- java连接Fastdfs图片服务器上传失败的解决方法
照着视频上做,但是却连接不了虚拟机linux上的图片服务器,估计是linux防火墙的问题(这个实在是神烦,前面有好几次连接不了都是因为linux防火墙),果不其然,关闭即可. Linux关闭防火墙的命 ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- Java操作Oracle
public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...
- JAVA操作ORACLE数据库的存储过程
一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...
- JAVA操作MongoDB数据库
1. 首先,下载MongoDB对Java支持的驱动包 驱动包下载地址:https://github.com/mongodb/mongo-java-driver/downloads 2.Java操作Mo ...
随机推荐
- React Tutorial: Basic Concept Of React Component---babel, a translator
Getting started with react.js: basic concept of React component 1 What is React.js React, or React.j ...
- python语言(四)关键字参数、内置函数、导入第三方模块、OS模块、时间模块
一.可变参数 定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传参也可以).此时,可用包裹(packing)位置参数(*args),或者包裹关键字参数(**kwargs),来进行参数传递,会 ...
- continue语句:编程把100-300之间的能被25整除的数输出
#include<stdio.h>void main(){ int n; for(n=100;n<=300;n++) { if(n%25!=0) continue; printf(& ...
- 【JZOJ5553】【20190625】谜
题目 给出一个\(2\times n\)个点的二分图的邻接矩阵\(M\) 以及\(m\)个行替换元,\(k\)个列替换元 \(q\)次询问:op u v 表示用第v个行/列替换元去替换矩阵的第u行/列 ...
- Debian 环境安装新版 nginx
在 Debian 系统中,我们可以通过 apt-get 安装系统自带的 nginx,这样安装的 nginx 版本略旧.Nginx 官网提供了一些编辑绎好的 deb 安装包,我们只需更新安装源,就可以通 ...
- 线程休眠只会用Thread.sleep?那你就弱爆了!
线程休眠是 Java 开发经常会用到的一个手段,就是让当前线程睡一会儿,睡醒之后再继续运行. 咱大多数程序员,多线程虽然学得不好,但线程休眠,无人不知,无人不晓,也都会用,不就是用 Thread.sl ...
- filebeat kafka java日志收集
filebeat.modules:- module: kafka log: enabled: truefilebeat.prospectors:- type: log enabled: true pa ...
- 【Beta】Scrum meeting 10
目录 写在前面 进度情况 任务进度表 Beta-1阶段燃尽图 遇到的困难 照片 commit记录截图 后端代码 前端代码 技术博客 写在前面 例会时间:5.14 22:30-22:45 例会地点:微信 ...
- No Suitable Driver Found For Jdbc
今天出现编码出现了No suitable driver found for jdbc,又是找遍了网上的资料,基本上都说是三个问题: 一是:连接URL格式出现了问题(Connection conn ...
- 工具系列 | 如何在阿里云负载均衡上启用WS/WSS支持
官方文档:https://help.aliyun.com/document_detail/63421.html?spm=5176.10695662.1996646101.searchclickresu ...