S3云存储示例 — xnx_clouds3
本插件为示例插件,供开发者开发第三方云存储插件时参考,不建议用于正式环境,开发者可以参考此插件开发插件后发布免费或付费下载!
Xiuno BBS X 的 S3 兼容存储驱动插件,通过
storage_save/storage_serve/storage_delete三个专用 Hook 接管附件与头像存储。使用原生 curl + AWS Signature V4 签名实现,无需 composer 依赖。支持 AWS S3、MinIO、阿里云OSS(S3兼容)、腾讯云COS(S3兼容) 等。
快速开始
安装插件
进入插件设置页,填写 S3 配置(端点、Bucket、AccessKey、SecretKey),点「测试连接」验证
进入「系统设置 - 上传设置」,将存储驱动切换为「S3云存储」
配置了 CDN 域名时,在插件设置页执行「存量数据同步」(否则历史图片会 404)
完成
工作原理
Hook | 作用 |
|---|---|
| 在设置页注册「S3云存储」选项 |
| 发帖时附件从 tmp 移到 attach 目录后,上传到 S3(配 CDN 时删除本地文件) |
| 读取/下载附件时,302 重定向到 S3 预签名 URL |
| 删除附件时,同时删除 S3 上的文件 |
| 前台输出层把已上云的 attach/avatar URL 替换为 CDN 域名 |
| 头像上传后同步到 S3 |
| 用户删除时清理云端头像对象 |
配置说明
字段 | 说明 |
|---|---|
endpoint | S3 端点 URL |
region | 区域 |
bucket | 存储桶名称 |
access_key | AccessKey |
secret_key | SecretKey |
cdn_domain | CDN 域名(可选,配置后图片/附件走 CDN,需在服务商侧配置回源到 Bucket) |
path_prefix | S3 存储路径前缀 |
url_style | URL 风格:虚拟主机(OSS/AWS/COS)或路径(MinIO 自建) |
适配其他 S3 兼容服务
MinIO: endpoint 填
http://IP:9000,region 填us-east-1,URL 风格选「路径」阿里云OSS: endpoint 填
https://oss-cn-beijing.aliyuncs.com,region 填oss-cn-beijing腾讯云COS: endpoint 填
https://cos.ap-guangzhou.myqcloud.com
从 mycloud_s3 升级
本插件由 mycloud_s3 更名而来,安装时自动迁移旧配置。升级步骤:
系统设置 - 上传设置:存储驱动先切换回「本地存储」并保存
卸载旧插件 mycloud_s3(如后台仍显示)
安装本插件(配置自动迁移)
系统设置 - 上传设置:存储驱动切换为「S3云存储」并保存
注意事项
预签名 URL 有效期 1 小时,配置 CDN 域名可避免频繁生成
配置 CDN 后本地文件会被删除以节省磁盘,必须先完成存量数据同步
开启"个人资料需审核"的站点,审核通过的头像需重跑一次同步工具
卸载前请先在系统设置中切换回「本地存储」


版本:v1.0.9
适用版本:1.1
开发者:贰先生



