掘金者说,写了分布式文件系统选型,我们可以进行正常的部署访问用后,在服务端编接口就可以使用验证。在nginx配置上面,需要nginx进行相关的调整和https代理配置
业务接口
页面访问地址:http://localhost:8010/rest/files/image/saveMinioImage
文件接口:/rest/files/image/saveMinioImage
文件类型:base64file
复制代码
- 个别问题:无法识别的SSL消息,纯文本连接?
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
复制代码
- 解决
访问的minio的url地址调整,使用http://127.0.0.1:9000
改成 https://minio.pig4cloud.com
nginx代理配置https
修改我们的nginx配置vi /etc/nginx/conf.d/minio.pig4cloud.com.conf
server {
listen 80;
server_name minio.pig4cloud.com;
index index.html index.htm index.php;
location / {
root /app/file/data/pig4cloud/;
}
}
server {
listen 443 ssl;
server_name minio.pig4cloud.com;
ssl_certificate /etc/nginx/cert/minio.pig4cloud.com.pem;
ssl_certificate_key /etc/nginx/cert/minio.pig4cloud.com.key;
location / {
root /app/file/data/pig4cloud/;
}
}
复制代码
然后,进行文件验证查看图片访问地址:
https://minio.pig4cloud.com/upload/pig4cloud/2020/07/15/20200606164355_2516ab9e10434371a9c0b64d65b2af01.png
复制代码
BUG收集
- Bug1 java.lang.IllegalArgumentException: Request header is too large In my case, I had SpringBoot 2.x and used HTTP POST, however I had to add:
server.max-http-header-size=10000000
复制代码
- Bug2 Java中URLEncoder.encode与URLDecoder.decode处理url特殊参数的方法,防特殊字符被过滤(待处理) 文件上传是进行base64的编码字符串,这里面含有特殊字符: / + = 等等。 那么在服务端获得param会变成无特殊字符。 原因就是:如果url参数值含有特殊字符时,需要使用 url 编码。
url = "xxxxx?param=" + URLEncoder.encode("xxx", "utf-8");
复制代码
然后服务端获取时:
String param = URLDecoder.decode(param, "utf-8");
复制代码
- Bug3 程序包com.sun.image.codec.jpeg不存在 问题的完美解决 Error:(11,32) java: 程序包com.sun.image.codec.jpeg不存在
<build>
<plugins>
<!-- 程序包com.sun.image.codec.jpeg不存在 问题的完美解决 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
复制代码
参考: