前言

前几天发现一个大问题,就是博客访问往往秒开,但是图片会一直卡着一点一点加载出来,特别耗费时间,尤其是有些文章里包含多张大尺寸图片的。所以为了解决这个问题我试着发帖寻找好的方法帖子之一

解决方案

同时我也提供了三个方案

  1. 自己编写程序在halo后台上传图片时自动缩小上传图片大小 这是我能想到最好的方案
  2. 使用自带缩略大小功能的图床 但毕竟资源放在自己这里更安心吧 不稳定的图床网站可能导致图片丢失
  3. 在上传前把照片缩小 除非有批量处理软件推荐 否则较为繁琐

但是以上三个方案都存在一定的问题,在不断了解后找到了可能是最好的解决方案。
后来我才了解到云存储这个东西。得出以下。

最优解决方案

1. 云存储+图片处理——能够突破自身带宽限制结合自带的图片处理
2. gzip——优化网页访问速度
3. cdn加速或全站加速

第一选择-尝试又拍云过程中发现的一些问题

由于最开始听许多人都是配置的又拍云存储因为有送空间和流量,一年能便宜十几块吧。但是后来配置不起来也就没管,那天突然想起问题所在即SSL证书没有配置好。图片显示地址需要解析到自己的域名,但是halo会根据证书同步原则自动将https的网页绑定https的附件网址,所以如果博客有https,那么附件的地址也应为https否则无法访问。
总之第一次弄云存储也需要不断试错,我们直接进入正题。

halo对接阿里云对象存储oss配置

本着用谁家的服务器就用谁家的拓展业务的狗屁道理,我选择阿里云的oss对象存储功能。

价格分析

阿里云里购买对象存储。根据定价解读出文件5g以下免费,但是数据传输有关的功能需要收费。虽然可以先用后付不过我们体验完全没有问题因为阿里云支持最高10元的欠费。

halo后台附件配置

在halo后台 系统——博客设置——附件设置——存储位置 更改为阿里云稍后会填充其他信息。

创建bucket

到阿里云管理后台创建bucket,注意存储类型标准存储,读写权限是公共读其他不影响。记住bucket名称填入halo后台。
aliossbucket
点击创建的bucket名称,左边栏概览,记下访问域名——外网访问Endpoint(地域节点)Bucket 域名填入halo后台。当然也可以绑定解析到自己的域名,可以自己尝试,但需要注意http和https协议(我就是这么踩坑的)。

创建access子账户

阿里云界面右上角个人那里点AccessKey管理,可以理解为设置一个专门的账户开启对接权限。
leadtoaccess
开始使用子账户——创建用户,需要注意勾选编程访问
accessuser
创建完成获得AccessKey IDAccessKey Secret,填入halo后台。
返回oss控制台点击创建的bucket名称。权限管理——Bucket 授权策略——新增授权——子账号选择刚创建的子用户,注意要选完全控制

*图片处理

图片处理是相当重要的环节,现在不管是拍照还是截屏的文件大小都不小,宽带很慢的情况下必须适当压缩图片来提升访问的速度。
oss控制台里数据处理——图片处理——新建样式,然后根据自己的需要调整即可。
创建完后需要注意上面的图片处理域名规则

域名/sample.jpg?x-oss-process=style/stylename

这个对应halo的图片处理策略修改填写。
需要注意的是,图片处理是在上传时处理完毕的,即后期修改图片处理方案无法应用于现有处理过的图片。所以建议不断尝试直到找到完美的方案后再批量上传。
以下是本人推荐方案
recommendphotomaker.png

其他云存储推荐

推荐的免费云存储平台又拍云,比较看好他们的又拍云联盟活动。在网站footer处添加友联即可。但又拍云不支持halo后台浏览附件。

参考文章

为博客搭建图床
oss价格实践结果
halo&又拍云
网站开启gzip

鸣谢大佬提供的解决方案与启发

越行勤's Blog
Juning的小本本