我们部署Fastdfs,就是为了实现文件的上传。

现在使用idea整合Fastdfs,实现图片上传

部署环境:Centos7部署分布式文件存储(Fastdfs)

利用Java客户端调用FastDFS

服务器安装完毕后,咱们通过Java调用fastdfs

加载Maven依赖

fastdfs 没有在中心仓库中提供获取的依赖坐标。

只能自己通过源码方式编译,打好jar 包,安装到本地仓库。

官方仓库地址:

https://github.com/happyfish100/fastdfs-client-java

直接用idea 直接把这个源码作为模块导入工程

别的不用改,只把pom.xml中的版本改成1.27。

然后右边 执行install 就好了

安装好了 ,别的模块就可以直接使用这个坐标了。

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

而这个fastdfs-client-java模块可以从idea 中删除。

然后可以进行一下上传的测试

package com.atguigu.gmall.manage;

import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import java.io.IOException; @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("g:/9.gif", "gif", null); String url="http://192.168.116.129"; for (String uploadInfo : uploadInfos){
url+="/"+uploadInfo; }
System.out.println(url);
}
}

加入tracker.conf文件

tracker_server=192.168.67.162:22122

# 连接超时时间,针对socket套接字函数connect,默认为30秒
connect_timeout=30000 # 网络通讯超时时间,默认是60秒
network_timeout=60000

打印结果

这个打印结果实际上就是我们访问的路径,加上服务器地址我们可以拼接成一个字符串

http://192.168.116.129/group1/M00/00/00/wKh0gV2dHmGAFpUzAA7-f54U48M105.gif

直接放到浏览器去访问

最新文章

  1. 干掉命令行窗口下MySql乱码
  2. Python开发入门与实战19-Windows Azure web 应用部署
  3. QMessageBox中按钮的汉化
  4. Light oj 1197 - Help Hanzo (素数筛技巧)
  5. Android开发UI之Action Bar
  6. C#调用百度云存储接口上传文件
  7. css的三种引入方式、常用的元素选择器以及css三大特性
  8. php基础运算符语句
  9. 老男孩Python全栈学习 S9 日常作业 001
  10. vue中的组件化
  11. JS面向对象的程序设计之理解对象
  12. python 安装包制作
  13. 1-微信小程序开发(安装软件和运行第一个微信小程序)
  14. 单击Gridview中LinkButton,获取当前行索引及某单元格值,进行相关处理
  15. php判断一个数组是否为另一个数组子集的方法
  16. UITableView 顶部能够放大的图片
  17. 使用seaborn制图(箱型图)
  18. 51nod1376 最长上升子序列的数量
  19. Android 中加载几百张图片做帧动画防止 OOM 的解决方案
  20. python3 使用opencv 画基本图形

热门文章

  1. PHP转Go系列:数组与切片
  2. Shell命令-用户用户组管理之passwd、chage
  3. react中界面跳转 A界面跳B界面,返回A界面,A界面状态保持不变 redux的state方法
  4. 2.Java基础_Java常量
  5. SQL必知必会|SQL基础篇
  6. python3.5.3rc1学习五:模块
  7. layUI学习第一日:myeclipse中使用layUI
  8. MySQL 行格式
  9. Node.js和JavaScript的区别与联系
  10. 《计算机网络第7版》PDF+《计算机网络释疑与习题解答第7版》PDF