springboot 集成 fastdfs

删除回忆录丶 提交于 2020-11-25 06:42:53

1 引入jar

<dependency>
    <groupId>com.github.tobato</groupId>
    <artifactId>fastdfs-client</artifactId>
    <version>1.26.1-RELEASE</version>
</dependency>

说明: 

springboot的版本为2.0以上时候,使用1.26.1-RELEASE版本

2 引入配置:

 

@Configuration
@Import(FdfsClientConfig.class)
// 解决jmx重复注册bean的问题
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class FastClientImporter {
}

3 yml 配置:

fdfs:
  so-timeout: 1501
  connect-timeout: 601
  thumb-image: # 缩略图
    width: 60
    height: 60
  tracker-list: # tracker地址
    
    10.96.165.173:22122

4使用:

@Service
public class PictureServiceImpl implements  PictureService {
    @Autowired
    private FastFileStorageClient fastFileStorageClient;
 
    @Value("${IMAGE_SERVER_URL}")
    private String IMAGE_SERVER_URL;
    @Override
    public String uploadPicture(MultipartFile file){
        //截取后缀
        try {
            String originalFilename = file.getOriginalFilename();
            System.out.println(originalFilename);
            String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
            System.out.println(extName);
            StorePath storePath = fastFileStorageClient.uploadFile(file.getInputStream(), file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()), null);
            System.out.println(storePath);
            String fileUrl = IMAGE_SERVER_URL + storePath.getFullPath();
            return fileUrl;
        } catch (IOException e) {
            e.printStackTrace();
            return  null;
        }
    }
}

docker 搭建 fastdfs server

前提: 安装docker   

yum install -y docker-io

1 拉取镜像:

docker pull qbanxiaoli/fastdfs

2 docker 启动

docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=192.168.127.131 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs qbanxiaoli/fastdfs

3 检验:

docker exec -it fastdfs /bin/bash

echo "Hello FastDFS!">index.html

fdfs_test /etc/fdfs/client.conf upload index.html

常见错误: 

  返回错误码28,表示磁盘空间不足。注意FastDFS中有预留空间的概念,在tracker.conf中设置,配置项为:reserved_storage_space,缺省值为4GB,即预留4GB的空间。

解决: 

  请酌情设置reserved_storage_space这个参数,比如可以设置为磁盘总空间的20%左右。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!