记一次springboot整合fastdfs实现与文件服务器的交互

由于最近有一个需求:要求前端聊天时发送的语音文件(base64)到后端,转换成音频文件,并保存到文件服务器,并且能通过地址直接访问。所以本文优先说一下springboot集成fastdfs客户端并实现文件的上传。

1.首先引入客户端jar包(目前失眠岸上引入的jar包大体分成两个,综合考虑维护性和springboot项目特点选取这个)

2.配置类

3.配置文件(模糊的地方大家填上自己服务端设置的地址)

4.工具类(为了方便大家直接贴代码)

**
 * Fastdfs工具类
 */
@Component
public class FastdfsClientUtil {
    @Value("${fdfs.reqHost}")
    private String reqHost;

    @Value("${fdfs.reqPort}")
    private String reqPort;

    @Autowired
    private FastFileStorageClient storageClient;

    @Autowired
    private ThumbImageConfig thumbImageConfig; //创建缩略图   , 缩略图访问有问题,暂未解决


    public String uploadFile(MultipartFile file) throws IOException {
        StorePath storePath = storageClient.uploadFile((InputStream)file.getInputStream(),file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()),null);

        String path = thumbImageConfig.getThumbImagePath(storePath.getPath()) ;
        System.out.println("thumbImage :" + path);  //   缩略图访问有问题,暂未解决

        return getResAccessUrl(storePath);
    }

    public void delFile(String groupName , String path) {
        storageClient.deleteFile(path);
    }

    public InputStream download(String groupName, String path ) {
        InputStream ins =  storageClient.downloadFile(groupName, path, new DownloadCallback<InputStream>(){
            @Override
            public InputStream recv(InputStream ins) throws IOException {
                // 将此ins返回给上面的ins
                return ins;
            }}) ;
        return ins ;
    }

    /**
     * 封装文件完整URL地址
     * @param storePath
     * @return
     */
    private String getResAccessUrl(StorePath storePath) {
        String fileUrl = "http://" + reqHost + ":" + reqPort + "/" + storePath.getFullPath();
        return fileUrl;
    }

}

5.后面直接就可以使用了(验证过没问题哈)怎么转换成byte[]这个大家应该没有问题

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值