场景是我将后端服务从121.xxx.xxx.xxx服务器上转移到了另一台服务器10.xxx.xxx.xxx
但图片都还在121.xxx.xxx.xxx服务器上,同样我10.xxx.xxx.xxx也安装了minio并且我的后端服务配置的minio地址也是10.xxx.xxx.xxx
此时有一个业务通过minio客户端获取图片(getObject方法),url是121.xxx.xxx.xxx的图片。然后就报出了
Object name contains unsupported characters.
然后我追踪源码发现minio生成的url是错误的
正常应该是:
解决方法:
1、直接通过网络访问url
java
SysOssVo oss = ossService.getById(ossId);
String url = oss.getUrl();
URL url1 = new URL(url);
URLConnection connection = url1.openConnection();
//获取图片输入流
InputStream inputStream = connection.getInputStream();
//....
inputStream.close();
2、根据url动态初始化客户端实例
我采用了第一种方法,第二种只需要通过url获取到ip信息,再通过获取到的信息查询对应的配置记录即可。