不会使用Java客户端调用FastDFS?

在使用Java客户端调用FastDFS之前必须先搭建FastDFS服务器:
参考 服务器搭建流程博客连接:分布式文件存储服务(FastDFS)安装

服务器安装完毕后,咱们通过Java调用fastdfs
加载Maven依赖
fastdfs 没有在中心仓库中提供获取的依赖坐标。
只能自己通过源码方式编译,打好jar 包,安装到本地仓库。
官方仓库地址:
https://github.com/happyfish100/fastdfs-client-java
在这里插入图片描述

直接用idea 直接把这个源码作为模块导入工程
在这里插入图片描述
别的不用改,只把pom.xml中的版本改成1.27。
在这里插入图片描述
然后右边 执行install 就好了
在这里插入图片描述
安装好了 ,别的模块就可以直接使用这个坐标了。

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

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

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

@RunWith(SpringRunner.class)
@SpringBootTest

@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);
    }

}

加入tracker.conf文件
在这里插入图片描述

tracker_server=192.168.67.162:22122


# 连接超时时间,针对socket套接字函数connect,默认为30秒
connect_timeout=30000

# 网络通讯超时时间,默认是60秒
network_timeout=60000

打印结果:
在这里插入图片描述
这个打印结果实际上就是我们访问的路径,加上服务器地址我们可以拼接成一个字符串

http://192.168.67.163/group1/M00/00/00/wKhDo1qjU2qAWKQmAAATla901AQ534.jpg

直接放到浏览器去访问
在这里插入图片描述
上传成功!

对接到业务模块中
在修改FileUploadController的方法

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



@RequestMapping(value = "fileUpload",method = RequestMethod.POST)
public String fileUpload(@RequestParam("file") MultipartFile file) throws IOException, MyException {
    String imgUrl=fileUrl;
    if(file!=null){
        System.out.println("multipartFile = " + file.getName()+"|"+file.getSize());

            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 filename=    file.getOriginalFilename();
            String extName = StringUtils.substringAfterLast(filename, ".");

            String[] upload_file = storageClient.upload_file(file.getBytes(), extName, null);
            imgUrl=fileUrl ;
            for (int i = 0; i < upload_file.length; i++) {
                String path = upload_file[i];
                imgUrl+="/"+path;
            }

        }

    return imgUrl;
}

利用@Value 标签可以引用application.properties中的值

fileServer.url=http://192.168.67.163

测试结果:
在这里插入图片描述
至此我们解决了文件上传的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值