起因
为了在微服务项目中更方便的使用文件上传功能,在封装minio为springboot-starter后
在某个微服务模块使用封装好的minio图片上传接口时出现Non-XML response from server异常
原因
后面发现是因为使用 docker pull命令时不指定版本会默认拉取最新版本的minio,而最新版本的minio的运行命令中需要指定两个端口映射,如下docker run命令第一个-p设置的是minioAPI的端口映射,而第二个-p设置的是minio管理界面的端口映射,而在使用minio提供的接口时需要指定api的访问地址而不是控制台的地址
需要使用minio文件上传服务的nacos配置如下,需要指定endpoint为minioAPI的地址也就是宿主机的ip地址+上图第一个-p的前半部分的端口
可以使用docker logs -f (minio的name)来清楚的查看minioAPI地址映射和管理界面地址映射
解决
1.使用如下命令创建minio容器
docker run -d \-p 9000:9000 \-p 9001:9001 \--name minio \-v /home/minio/data:/data \-e "MINIO_ROOT_USER=minio" \-e "MINIO_ROOT_PASSWORD=minio123" \minio/minio server /data --console-address ":9001"
2.在需要使用minio的服务的配置文件中加上这段配置
minio:
accessKey: minio
secretKey: minio123
bucket: leadnews
endpoint: http://192.168.148.130:9000
readPath: http://192.168.148.130:9000
其中endpoint为minioAPI的地址,readpath与endpoint保持一致即可解决