docker创建FastDFS更简单的镜像

最重要一点要在CentOS的docker中进行,macOS会有很多问题。

1.拉取镜像

docker pull qbanxiaoli/fastdfs

2.运行镜像

docker run -d --privileged=true --net=host --name=fastdfs -e IP=172.16.200.168 -e WEB_PORT=80 -v /root/docker/fastdfs:/var/local/fdfs qbanxiaoli/fastdfs

其中172.16.200.168改为宿主机CentOS的IP
/root/docker/fastdfs改为宿主机上的存在的目录
3.docker中测试上传
A.进入docker:

docker exec -it fastdfs /bin/bash 

B.创建文件

echo "Hello FastDFS!">index.html

C.fastdfs自带命令上传

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

D.上传成功返回地址输入浏览器即可

http://172.16.200.168/group1/M00/00/00/rBDIqF0Z112AYqC-AAAADyBAGsI06_big.html

E.如果无法访问172.16.200.168机器可以把防火墙关闭再访问

4.SpringBoot中使用代码实现
A.依赖


  com.github.tobato
  fastdfs-client
  1.26.4

B.配置

#FastDfs
fdfs.so-timeout=1500
fdfs.connect-timeout=6000
fdfs.tracker-list=172.16.200.168:22122
fdfs.pool.jmx-enabled=false
fastDfs.host=http://172.16.200.168/
fdfs.thumb_image.width = 150
fdfs.thumb_image.height = 150

其中172.16.200.168为docker宿主机的地址,有可能是在虚拟机中
C.启动类
加上注解

@Import(FdfsClientConfig.class)

D.使用
后台

@Service
public class PictureService {
    @Autowired
    private FastFileStorageClient fileStorageClient;
    @Value("${fastDfs.host}")
    private String hostIp;
    public String uploadPic(MultipartFile file) {
        try {
            StorePath storePath = fileStorageClient.uploadFile(
                    file.getInputStream(),
                    file.getSize(),
                    FilenameUtils.getExtension(file.getOriginalFilename()), null);
            String fileUrl = hostIp + storePath.getFullPath();
            return fileUrl;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
    @PostMapping("/testUpload")
    public Result testUpload(@RequestBody MultipartFile file) {
        String url = pictureService.uploadPic(file);
        return new Result<>(true, StatusCode.OK, "成功", url);
    }

E.前端实现
ElementUI的el-upload组件


  点击上传
  
只能上传jpg/png文件,且不超过500kb

数据结构

fileList: [
  {
    name: 'food.jpeg',
    url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
  },
  {
    name: 'food2.jpeg',
    url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'
  }
],

你可能感兴趣的:(docker创建FastDFS更简单的镜像)