最近在捣鼓halo博客,在设置附件上传的时候遇到了些问题。因为之前白嫖了一个七牛云的oss存储,10G的空间正好能用来存储博客的图片。先展示一下我附件上传设置的内容吧(本篇以七牛云为例,阿里云的其实也可以参考理解),细节的部分后续逐步展开来细说。
先说一下配置中的信息
-
绑定域名协议: 这个根据你自己的实际情况来设置,由于我的站点使用的是HTTPS协议,在部分浏览器下不支持加载HTTP资源,所以我对CDN加速域名也配置SSL证书。
-
绑定域名: 在七牛云中可以配置CDN域名加速,这里就填入你的加速域名,**注意**这里不需要加上HTTP:// 或者 HTTPS://。
-
区域: 这里没什么多说的,就是你的对象存储里配置的。
-
AK和SK: 这个可以在,右上角个人头像那里选择**秘钥管理**找到。
-
文件目录: 相当于给你的附件访问地址增加一个层级如 “https://qn.ec96.vip/halo/20211225-233900_1640446767667.jpg”
-
Bucket: 如上图所示就是你的对象存储名称
-
图片处理策略: 选择图片样式=>>新建图片样式
-
进入设置页面,可以根据需求选择裁剪方式(我这里选择的是不裁剪),只是对图片质量进行压缩。
然后我们再去设置一下样式分隔符,这里我选择的是尖括号。分隔符能作用于你的图片链接末尾,为你的图片定义不同的处理策略。
-
到这一步,配制酒完成了,点击附件上传一张图片试试,我在这里遇到了两个坑。
-
第一个坑:附件上传报错,多次尝试都没成功。通过查询后台日志发现是DNS解析的问题,报错日志如下。
at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]
at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName0(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(Unknown Source) ~[na:na]
at okhttp3.Dns.lambda$static$0(Dns.java:39) ~[okhttp-3.14.9.jar:na]
-
本着遇事不决先重启的原则,在我重启了服务器之后问题解决了。
-
第二个坑:小文件可以上传成功了,但是超过了2m的文件都上传失败。我看了一眼配置文件,果然Nginx拦截了大文件。只需要将 client_max_body_size 属性值调大(我是给的30m,这个可以根据自己的需求来)就可以了。