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 ...
随机推荐
- Go语言 - goroutine
并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天). 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天). Go语言的并发通过goroutine实现.goroutin ...
- redux有价值的文档
使用 Redux 管理状态,第 1 部分 https://www.ibm.com/developerworks/cn/web/wa-manage-state-with-redux-p1-david-g ...
- 浏览器绘图模型的解释:renderObject、renderlayer
先来看这幅经典的图: https://juejin.im/entry/590801780ce46300617c89b8 renderObject相当于iOS 的view renderlayer完成了一 ...
- multipart/form-data与数据封装
方案一: 将所有数据先格式化(编码)成可读字符串,然后转化成bytes的形式. 方案二: 将每一个部分分别转化成(或者直接使用)bytes的形式,然后串联到一起. http://www.jianshu ...
- arduino入门笔记
以 ARDUINO® UNO R3为例 一.将板子与电脑连接 初次使用会自动安装驱动. Arduino Uno通过USB连接到计算机或外部电源自动获取电源,因此此时能看到电源指示灯会亮. 我的L13也 ...
- scala 学习笔记--闭了个包
object Test01 { def main(args: Array[String]): Unit = { //普通函数 val squ=(x:Int) => x*x // ps:_的简写形 ...
- Macbook Pro A1398 換電池手札
前不久老MBP总是风扇狂转,cpu 100%,一直觉得有问题,就买了工具想着把機器拆開看一下. 結果,不拆不知道,一拆開發現機器變成下面醬紫了: 整個一炸藥包啊!此時我腦中只有一個念頭:得趕緊馬上立刻 ...
- KVM系统镜像制作
使用virt-install创建虚拟机并安装GuestOS virt-install是一个命令行工具,它能够为KVM.Xen或其它支持libvirt API的hypervisor创建虚拟机并完成Gue ...
- GoCN每日新闻(2019-11-01)
GoCN每日新闻(2019-11-01) GoCN每日新闻(2019-11-01) 1. Rob Pike 认为 Go 成功的 5 个因素 https://changelog.com/posts/5- ...
- 新款戴尔笔记本win10系统改win7 安装教程
下载U盘启动制作工具 及戴尔DELL ghost win7 旗舰版GHO 文件 下载地址:http://pan.baidu.com/s/1c17JqpU 插入制作好的U盘启动盘,开机按F2进入BIO ...