Springboot项目利用Java客户端调用FastDFS

服务器安装完毕后,测试通过Java调用fastdfs。
fastdfs的安装可以参考我的博文:分布式文件系统FastDfs的搭建

1.加载Maven依赖

fastdfs 没有在中心仓库中提供获取的依赖坐标。只能自己通过源码方式编译,打好jar 包,安装到本地仓库。
官方仓库地址:
https://github.com/happyfish100/fastdfs-client-java
可以在项目的根目录下使用git clone 命令,将代码下载
在这里插入图片描述

2.导入工程

随后可以用idea直接把这个源码作为模块导入工程
在这里插入图片描述
导入工程后,别的不用改,只把pom.xml中的版本改成1.27。
在这里插入图片描述

3.执行maven的install命令将项目打包入本地仓库

最后执行install
在这里插入图片描述
安装完成后就可以在自己的项目任意一个模块直接使用这个坐标了。

<!--添加fdfs依赖-->
<dependency>
   <groupId>org.csource</groupId>
   <artifactId>fastdfs-client-java</artifactId>
   <version>1.27</version>
</dependency>

上传测试

在你要使用fastdfs的项目模块中的resource中添加tracker.conf 配置文件
在这里插入图片描述
tracker.conf:

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

@Test
public void textFileUpload() throws IOException, MyException {
    String file = this.getClass().getResource("/tracker.conf").getFile();
    ClientGlobal.init(file);
    TrackerClient trackerClient=new TrackerClient();
    TrackerServer trackerServer=trackerClient.getConnection();
    StorageClient storageClient=new StorageClient(trackerServer,null);
    String orginalFilename="e://victor.jpg";
    String[] upload_file = storageClient.upload_file(orginalFilename, "jpg", null);
    for (int i = 0; i < upload_file.length; i++) {
        String s = upload_file[i];
        System.out.println("s = " + s);
    }
}

打印结果:
在这里插入图片描述
这个打印结果实际上就是我们访问的路径,加上服务器地址我们可以拼接成一个字符串:http://192.168.1.136/group1/M00/00/00/wKgBiF3u5IKAKPMPAAAl_GXv6Z4569_big.jpg 可以直接放到浏览器去访问
在这里插入图片描述

对接到业务模块中

修改业务模块中文件上传FileUploadController的方法

@RestController
@CrossOrigin
public class FileUploadController {

    @Value("${fileServer.url}")
    private String fileUrl;

    // http://localhost:8082/fileUpload
    @RequestMapping("fileUpload")
    public String fileUpload(MultipartFile file) throws IOException,MyException{
        String imgUrl = fileUrl;
        if(file!=null) {
            //上传哪张图片回显哪张图片
            //表示读取配置文件中的tracker.conf
            String configFile = this.getClass().getResource("/tracker.conf").getFile();
            //初始化
            ClientGlobal.init(configFile);
            TrackerClient trackerClient = new TrackerClient();
            TrackerServer trackerServer = trackerClient.getConnection();
            //存储数据
            StorageClient storageClient = new StorageClient(trackerServer, null);
            //String orginalFilename = "f://Temp//iu-006.jpg";
            String orginalFilename = file.getOriginalFilename();
            //获取文件后缀名
            String extName = StringUtils.substringAfterLast(orginalFilename, ".");
            //保存数据
            String[] upload_file = storageClient.upload_file(file.getBytes(), extName, null);
            for (int i = 0; i < upload_file.length; i++) {
                String path = upload_file[i];
                //System.out.println("s = " + s);
                imgUrl+="/"+path;
                // path = group1
                // path = M00/00/00/wKgBiF3vcZKAbGnXAAttGURDaFU215.jpg
            }
        }
        return imgUrl;
    }
}

利用@Value 标签可以引用application.properties中的值
在这里插入图片描述
注意:application.properties:fastdfs的路径是有http://

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值