论坛 插件开发 插件开发入门:从 0 到上架的完整路径
插件开发

插件开发入门:从 0 到上架的完整路径

管 管理员 提问于 2026-07-07 20:52 2155 浏览 22 回复
把这半年带新人的经验整理成文档:目录结构、addon.json、菜单注册、权限、测试、上架流程。
等待社区响应 · 状态:【跟进中】
林
林一舟 达人 已采纳 2026-09-14 11:05

这个坑我踩过。根因是:开启 Schema 缓存后,Yii 把表的字段类型信息一并缓存,而插件上传组件在构造 OSS 分片上传参数时用 $schema->getColumnType() 判断附件表字段,缓存里 varchar 长度信息丢失导致签名串里文件大小字段为空,STS 签名校验失败返回 403。

提问者已采纳 · 悬赏 100 积分已发放
风
风间 2026-09-14 14:02

同踩过这个坑,当时排查了半天才发现是 Schema 缓存,太隐蔽了。

白
白鸦 楼主 2026-09-14 14:15

回复 @风间:是的,已按 1 楼方案分离 schemaCache,20MB 上传验证通过

风
风间 2026-09-14 13:48

补充一个排查思路:遇到 OSS 403 先看响应头里的 X-Oss-Request-ID,拿去 OSS 控制台的日志查询里能直接定位到是签名错还是权限错,比盲猜快很多。

白
白鸦 楼主 2026-09-14 15:20

按 1 楼方案改了 schemaCache 分离,20MB 上传也通过了,问题解决 感谢!已采纳并发放悬赏。总结一句:开启 DB_ENABLE_SCHEMA_CACHE 的环境务必把 schemaCache 和业务 cache 分开配置。

撰写回答

回答被采纳可获得全部悬赏积分 · 支持 Markdown 语法

请先 登录 后回答