Halo CMS对接对象存储,图片存放云端

很多朋友用 Halo CMS 建站后,会发现图片越来越多,服务器磁盘空间吃紧,访问速度也变慢。
把图片放到对象存储,既能省服务器空间,又能借助 CDN 加速。
本文就带你从零开始,完成 Halo CMS 对接对象存储,实现图片云端存放。

开始前的必要准备

在动手之前,你需要准备好这几样东西:

  • 一个可用的对象存储服务,比如阿里云 OSS、腾讯云 COS、七牛云 Kodo 或 MinIO。本文以通用 S3 兼容协议为例,大部分云厂商都支持。
  • 记录下对象存储的 Endpoint(访问域名)、AccessKeySecretKeyBucket 名称。这些在云厂商控制台的“访问密钥”和“存储桶”页面可以找到。
  • 确保 Halo CMS 版本在 2.0 以上,因为从 2.x 开始原生支持 S3 协议的对象存储。旧版本可能需要插件,建议先升级。
  • 服务器能正常访问外网,否则无法上传文件到对象存储。

在 Halo 后台配置存储策略

登录 Halo 管理后台,按照以下路径操作:

  1. 点击左侧菜单的 “附件”,然后选择 “存储策略”
  2. 点击右上角的 “新建存储策略”
  3. 在弹出的窗口中,选择 “S3 对象存储” 作为存储类型。
  4. 填写配置信息:
  • 存储名称:自定义,比如“我的OSS”。
  • Endpoint:填对象存储的外网访问地址,例如 oss-cn-hangzhou.aliyuncs.com(阿里云)或 cos.ap-guangzhou.myqcloud.com(腾讯云)。注意不要带 http://https://
  • Access KeySecret Key:粘贴你准备好的密钥。
  • Bucket 名称:填你创建的存储桶名字。
  • 区域:部分服务商需要填,比如 ap-guangzhou,如果不确定可以留空或参考服务商文档。
  • 协议:一般选 HTTPS
  • 路径前缀:可选,比如填 halo/,这样所有文件会存放在存储桶的 halo 目录下,方便管理。
  1. 点击 “保存”

保存后,系统会提示是否设为默认策略。一定要把它设为默认,否则新上传的图片不会自动走对象存储。

验证配置是否生效

配置完成后,需要实际测试一下:

  • 在 Halo 后台写一篇文章,插入一张本地图片并发布。
  • 然后到文章前台页面,右键点击图片,选择“在新标签页打开图片”。
  • 观察浏览器地址栏,如果图片的 URL 变成了你对象存储的域名(比如 https://your-bucket.oss-cn-hangzhou.aliyuncs.com/...),说明配置成功。
  • 同时,你可以登录对象存储控制台,查看对应的 Bucket 里是否出现了刚上传的图片文件。

如果图片地址仍然是你的服务器域名,说明默认存储策略没生效,请回到存储策略列表,确认默认策略是否勾选正确。

几个容易踩坑的地方

  • 跨域问题:如果图片能上传但前台不显示,可能是对象存储的跨域设置没配好。需要在对象存储控制台找到跨域设置,添加一条规则,来源填你的网站域名,允许方法勾选 GET、POST、PUT,允许头部填 *
  • 权限问题:Bucket 的读写权限建议设为 “公共读”,否则图片无法被公开访问。如果设为私有,就需要生成签名 URL,Halo 默认不支持,容易导致图片裂开。
  • Endpoint 格式:有些服务商要求 Endpoint 带区域前缀,比如 s3.ap-southeast-1.amazonaws.com,填错会导致连接失败。建议直接复制控制台提供的 Endpoint。
  • HTTPS 证书:如果对象存储绑定了自定义域名并开启了 HTTPS,要确保域名已备案且证书有效,否则浏览器会拦截图片。

图片云端存放后的效果检查

完成以上步骤后,你可以做一次全面检查:

  • 新上传的图片是否自动进入对象存储,并且前台访问正常。
  • 之前已经上传到本地服务器的图片不会自动迁移,如果需要迁移,可以手动下载再重新上传,或者使用对象存储提供的迁移工具。
  • 观察服务器磁盘空间,如果不再增长,说明图片已经成功转移到云端。

Halo CMS 对接对象存储后,图片存放云端可以显著降低服务器负载,同时提升图片加载速度。 如果遇到上传失败,优先检查密钥权限和 Bucket 权限。

常见疑问

问:配置保存后,上传图片报错“Access Denied”怎么办?

答:通常是 AccessKey 或 SecretKey 错误,或者该密钥没有对应 Bucket 的读写权限。
请到对象存储控制台检查密钥是否启用,并确认授权策略。

问:可以同时使用本地存储和对象存储吗?

答:可以。
在 Halo 的存储策略里,你可以创建多个策略,但默认策略只有一个。
上传附件时可以选择使用哪个策略,但为了管理方便,建议统一使用对象存储。

问:对象存储会产生额外费用吗?

答:大多数对象存储服务按存储容量、请求次数和流量计费,具体价格请以服务商官方定价为准。
对于个人博客,通常费用很低。

问:迁移旧图片到对象存储有什么好办法?

答:如果图片不多,可以在 Halo 后台的附件管理里逐个下载再重新上传。
如果量大,可以考虑使用对象存储提供的命令行工具或第三方迁移工具,但操作前请先备份数据。

按照以上步骤操作,你应该已经成功让 Halo CMS 的图片存放云端了。
如果还有其他问题,欢迎在评论区留言交流。

分享到:
上一篇
Discuz帖子防灌水,风控策略配置
下一篇
Halo自定义插件开发,拓展网站功能
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意