𝖄𝕺🌎𝕿𝕽𝕺¥

𝖄𝕺🌎𝕿𝕽𝕺¥

𝕴 𝖉𝖔 𝖒𝖆𝖌𝖎𝖈
github

halo博客配置oss对象云存储阿里云-博客访问图片资源速度慢的解决办法

前言#

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

解决方案#

同时我也提供了三个方案

  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 的小本本

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。