项目产品
场景实践 / 7 分钟阅读

Halo博客附件存储对接对象存储教程

一、结论

Halo博客对接支持S3协议的对象存储,核心操作思路是提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等S3接入信息,再在Halo后台的存储配置页面填写对应参数,测试连通后即可将博客附件、图片、视频等资源自动同步到对象存储,既降低服务器存储压力,也能依托对象存储的分发能力提升资源访问速度。

二、准备工作

操作前需要提前准备好以下内容:

  • 已开通的支持S3协议的对象存储服务账号
  • 提前创建完成的存储桶(Bucket)
  • 对象存储服务提供的公网Endpoint地址
  • 对应账号的AccessKey(访问密钥ID)
  • 对应账号的SecretKey(访问密钥密码)
  • 存储桶所属的Region(地域标识)
  • 已完成部署且可以正常访问的Halo博客站点(2.x及以上版本内置S3存储配置,低版本可安装对应S3存储插件)
  • 存量博客附件资源备份(可选,运营中的旧站建议提前备份本地附件)

三、操作步骤

1. 配置存储桶权限与跨域规则:登录对象存储控制台,将存储桶的访问权限设置为公共读(博客附件需要公开访问,私密资源场景可额外配置预签名规则),同时在跨域CORS配置中添加Halo博客的主域名,允许GET、POST、PUT、DELETE等常用请求方法,配置完成后手动上传一个测试文件,确认可以通过公网链接正常访问。

2. 获取S3接入凭证:在对象存储控制台的密钥管理页面生成专属的AccessKey和SecretKey,同时复制存储桶对应的Endpoint、Bucket名称、Region信息,保存到本地记事本备用,注意不要将密钥信息泄露给无关人员,也不要提交到公开代码仓库。

3. 进入Halo存储配置页面:登录Halo管理员后台,依次点击「系统设置」-「存储设置」,在存储类型选项中选择「S3兼容存储」,切换到S3存储专属配置界面。

4. 填写S3配置参数:按照页面提示依次填入提前准备好的Endpoint、AccessKey、SecretKey、Bucket名称、Region信息,可选填写存储路径前缀(比如填写halo-assets,方便分类管理博客资源,避免和其他业务的文件混淆)、自定义访问域名(如果已经给存储桶绑定了自定义CDN域名可以填写在此处,未绑定则留空使用服务商默认域名)。

5. 保存配置并测试连接:填写完所有必填参数后,点击「测试连接」按钮,若系统提示连接成功则说明参数配置无误;如果提示连接失败,需要逐一核对参数是否存在填错、多空格、漏字符等问题。

6. 设置默认存储策略:测试连接成功后,将Halo的默认存储位置修改为S3对象存储,保存设置后后续上传的博客封面、文章内图片、附件、视频等资源都会自动存储到对象存储中,不再占用服务器本地磁盘空间。

7. 迁移存量附件(可选):如果是已经运营一段时间的旧站,可以使用Halo后台自带的存储迁移工具,将之前存储在服务器本地的附件批量迁移到对象存储中,迁移完成后逐一检查历史文章的资源链接,确认所有资源都可以正常访问。

四、常见错误

1. Endpoint填写错误:常见问题包括误填内网Endpoint、多写了存储桶前缀、复制时多了多余字符,解决办法是核对对象存储服务商提供的公网Endpoint地址,确认地址中没有存储桶名称前缀,且Halo服务器可以正常访问该公网地址。

2. 密钥填写错误:AccessKey或SecretKey复制时漏了字符、多了前后空格,解决办法是回到对象存储控制台重新复制密钥,填写时去掉前后多余空格,如果怀疑密钥泄露可以直接生成新的密钥替换。

3. 存储桶权限不足:存储桶设置为私有权限,导致博客访客无法正常访问附件资源,解决办法是将存储桶访问权限调整为公共读,私密资源场景可以额外配置S3预签名URL规则。

4. Region填写不匹配:存储桶实际所属地域和填写的Region代码不一致,导致连接失败,解决办法是核对对象存储控制台中存储桶对应的Region标识,部分服务商支持填写auto或者留空。

5. 跨域配置缺失:上传附件时提示跨域错误,解决办法是在对象存储控制台的跨域规则中添加Halo博客的主域名,允许所有常用请求方法和请求头,配置后等待几分钟生效再测试。

6. 上传成功但访问404:常见原因是存储路径前缀配置错误、自定义域名解析未生效,解决办法是检查配置中的路径前缀是否符合要求,确认自定义域名的DNS解析已经正确指向对象存储服务节点。

五、示例说明

以下为Halo后台S3配置的通用填写参考,具体参数需替换为自己的对象存储服务提供的信息:

| 配置项 | 填写说明 |

| --- | --- |

| Endpoint | 填写对象存储服务商提供的公网访问地址,无需携带存储桶名称前缀 |

| AccessKey | 填写对象存储控制台生成的访问密钥ID |

| SecretKey | 填写对象存储控制台生成的访问密钥密码 |

| Bucket | 填写提前创建的存储桶的准确名称 |

| Region | 填写存储桶对应的地域标识,部分服务商支持填写auto或留空 |

| 存储路径前缀 | 可选,填写自定义的资源存放目录,例如halo/blog-assets |

| 自定义访问域名 | 可选,填写绑定到存储桶的自定义CDN域名,未绑定则留空使用服务默认域名 |

六、更简单的方案

如果不想自己搭建MinIO这类自建对象存储服务,也不想花费精力维护存储服务器、处理存储扩容、容灾备份等底层问题,可以直接选择成熟的第三方兼容S3协议的云对象存储服务,开箱即用无需自行维护基础设施。如果你需要一个兼容S3协议、适合博客附件存储、图床、下载分发的对象存储服务,可以了解 七彩云对象存储,适合需要低门槛S3接入、不限流量下载分发的博客类项目使用。

七、FAQ

Q:Halo对接对象存储后,之前存在服务器本地的文章图片会自动迁移吗?

A:不会自动迁移,需要手动使用Halo后台的存储迁移工具进行批量迁移,迁移前建议做好本地文件备份,避免操作失误导致文件丢失。如果不想批量迁移,也可以保留旧文件在本地,后续新上传的文件自动存入对象存储即可。

Q:对接对象存储后会不会影响博客的加载速度?

A:正常情况下云对象存储都会搭配CDN加速节点,比直接从服务器加载附件的速度更快,反而会提升博客的访问体验。如果对接后访问变慢,可以检查是否绑定了CDN域名、CDN节点配置是否正常,或者是否选择了和目标访客距离较远的存储桶地域。

Q:AccessKey和SecretKey泄露了怎么办?

A:立刻到对象存储控制台删除已经泄露的密钥,重新生成新的密钥对,然后到Halo的存储配置页面替换成新的密钥即可,操作不会影响已经存储在存储桶中的文件,也不会影响博客的正常访问。

Q:同一个存储桶可以同时给多个Halo博客使用吗?

A:可以,只需要给每个博客配置不同的存储路径前缀,即可避免不同站点的文件重名覆盖,也方便后续分类管理不同站点的资源,不需要为每个站点单独创建存储桶。

八、总结

Halo博客对接对象存储的整体操作流程门槛较低,全程不需要修改代码,普通站长按照步骤即可在15分钟内完成配置。对接完成后不仅可以大幅降低博客服务器的存储压力,避免磁盘容量不足导致的网站故障,还能依托对象存储的CDN加速能力提升不同地域用户访问博客资源的速度,适合个人博客、技术博客、内容类网站等需要存储大量图片、附件、视频资源的站点使用。如果有批量大文件分发、多站点资源统一管理的需求,也可以搭配对象存储的生命周期规则、跨区域复制等功能实现更灵活的资源管理。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

场景实践 / / 9 分钟阅读

SaaS附件存储实践:多租户平台的文件上传、权限管理与访问分发设计入门

一、结论 多租户SaaS平台落地附件存储体系,可按照“统一存储底座+租户路径隔离+权限分层管控+访问分发配置”的思路操作,完整覆盖文件上传、权限校验、下载分发全流程。如果选用兼容S3协议的存储服务,通常需要提前准备Endpoint、AccessKey、SecretKey、Bucket、Region等接入信息,在业务程序或配套客户端中填写配置并测试连通性,即可

场景实践 / / 8 分钟阅读

APP出海怎么搭建面向海外用户的低延迟文件存储系统?部署配置实操教程

一、结论 搭建面向海外用户的低延迟文件存储系统,核心是采用兼容S3协议的对象存储作为底层存储层,配合就近接入策略降低跨区域访问延迟。实操时需提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等接入信息,在支持S3协议的业务程序或客户端中完成配置并测试连通,最后验证文件上传、访问的全链路可用性即可。

场景实践 / / 8 分钟阅读

Halo 附件存储实践:博客图片和附件如何配置远程存储实现稳定访问

一、结论 Halo配置远程附件存储的核心思路是使用兼容S3协议的对象存储作为后端,提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等接入信息,在Halo后台填写对应参数并测试连通后,即可将图片、附件自动同步到远程存储,实现稳定访问。主流版本的Halo均内置S3存储适配能力,整个配置过程不需要修改代码。

场景实践 / / 9 分钟阅读

个人博客怎么用PicGo搭建稳定图床?完整实践操作步骤

一、结论 个人博客用PicGo搭建稳定图床,核心是先准备支持标准S3协议的对象存储服务并创建专用存储桶,获取Endpoint、AccessKey、SecretKey、Bucket、Region等接入参数,再在PicGo中选择S3兼容存储类型完成配置与连通测试,验证上传、访问正常后即可对接博客使用。如果不想自行维护存储服务器,也可以直接选用成熟的公有云对象存储

场景实践 / / 8 分钟阅读

怎么在Alist中接入对象存储并配置文件公网访问与分享

一、结论 在Alist中接入对象存储并配置公网访问与分享的核心操作思路是,先准备好支持S3协议的对象存储服务的Endpoint、AccessKey、SecretKey、Bucket、Region等核心接入信息,在Alist后台添加S3兼容类型的存储源并填写参数测试连通,最后根据需求配置公网访问域名、文件权限与分享规则即可。整个流程无需修改Alist源码,普通