PGSTY SILO 博客
-
silo-pkg 3.13.0 正式发布
2026-09-13 后续状态: 本文保留 3.13.0 发布时的迁移记录。四个维护组件现已完成独立模块路径迁移;当前 pkg 为 v3.14.0。文中的“尚未迁移”描述仅适用于当时,见现有组件矩阵。 发布日期: 2026-08-30 · 版本: v3.13.0 · 提交: 215f116 · 仓库: pgsty/silo-pkg 3.13.0 是一个破坏性版本,只有一条主线:本模块不再冒用上游的导入路径,改用自己的。同时废弃 pgsty/silo-go 分支——它已经不再包含任何上游没有的东 …
2026-09-13 后续状态: 本文保留 3.13.0 发布时的迁移记录。四个维护组件现已完成独立模块路径迁移;当前 pkg 为 v3.14.0。文中的“尚未迁移”描述仅适用于当时,见现有组件矩阵。 发布日期: 2026-08-30 · 版本: v3.13.0 · 提交: 215f116 · 仓库: pgsty/silo-pkg 3.13.0 是一个破坏性版本,只有一条主线:本模块不再冒用上游的导入路径,改用自己的。同时废弃 pgsty/silo-go 分支——它已经不再包含任何上游没有的东 …
-
只读 Checksum 审计与可靠的 CLI 输出契约
本文是 MCLI 只读 checksum 校验流程,以及发布审查中发现的 non-TTY 输出缺陷 pgsty/mc#5 的设计与实现记录。 状态: 已随最终的 mcli 20260903 正式发布。命令经 pull request #8 与 #13 合入 main,在托管 CI 中针对真实 SILO 服务器验证, pgsty/mc#5 已关闭。把客户端打包进 Server 镜像仍是独立的后续门禁。 归属: pgsty/mc。 跟踪: pgsty/mc#5。 安全边界: 本命令只读校验,不负责修 …
本文是 MCLI 只读 checksum 校验流程,以及发布审查中发现的 non-TTY 输出缺陷 pgsty/mc#5 的设计与实现记录。 状态: 已随最终的 mcli 20260903 正式发布。命令经 pull request #8 与 #13 合入 main,在托管 CI 中针对真实 SILO 服务器验证, pgsty/mc#5 已关闭。把客户端打包进 Server 镜像仍是独立的后续门禁。 归属: pgsty/mc。 跟踪: pgsty/mc#5。 安全边界: 本命令只读校验,不负责修 …
-
两把 SSE-C 密钥,一份 CopyObject 响应
本文记录 SILO 提交 e73436c99 中的 CopyObject SSE-C checksum 响应修复。 截至 2026-08-28 的状态: 实现、加密与换钥测试、完整服务器套件、race、静态检查、构建和 Fable Max 独立验收均已完成。该提交已于 2026-08-29 以 e73436c99 合并进 main;tag、软件包、镜像、部署和生产验证仍是独立门槛。 范围: 只处理目标对象提交成功后的 CopyObject XML 与 HTTP 响应。存储对象字节 …
本文记录 SILO 提交 e73436c99 中的 CopyObject SSE-C checksum 响应修复。 截至 2026-08-28 的状态: 实现、加密与换钥测试、完整服务器套件、race、静态检查、构建和 Fable Max 独立验收均已完成。该提交已于 2026-08-29 以 e73436c99 合并进 main;tag、软件包、镜像、部署和生产验证仍是独立门槛。 范围: 只处理目标对象提交成功后的 CopyObject XML 与 HTTP 响应。存储对象字节 …
-
配置环境文件不是 Shell 脚本
本文定义 MINIO_CONFIG_ENV_FILE 的启动契约,并记录 SILO 提交 2aea7fe9c 中的兼容性修复。 截至 2026-08-28 的状态: 实现、定向测试、完整 cmd 与 internal 套件、tagged tests、race、vet、lint、生成物检查、rebrand 守卫、构建与本机 Fable Max 独立评审均已完成。该提交已于 2026-08-29 以 2aea7fe9c 合并进 main;tag、软件包、镜像、部署和生产验证仍是独立门槛。 范围: 只 …
本文定义 MINIO_CONFIG_ENV_FILE 的启动契约,并记录 SILO 提交 2aea7fe9c 中的兼容性修复。 截至 2026-08-28 的状态: 实现、定向测试、完整 cmd 与 internal 套件、tagged tests、race、vet、lint、生成物检查、rebrand 守卫、构建与本机 Fable Max 独立评审均已完成。该提交已于 2026-08-29 以 2aea7fe9c 合并进 main;tag、软件包、镜像、部署和生产验证仍是独立门槛。 范围: 只 …
-
BadDigest、InvalidRequest 与 CompleteMultipartUpload 校验和契约
本文是 SILO #48 的完整设计、调查与验证记录,同时划清它与相关问题 SILO #50 的决策边界。 状态: pgsty/silo#74 已合并为 590aeaa7d,pgsty/silo.pgsty.com#6 已合并为 9805dd7;对应变更完成完整本地验证、远端 CI 与独立 Opus 5 Max 验收。tag、release、package、image、deployment 与 production verification 仍是彼此独立、尚未完成的门槛。 2026-08-28 …
本文是 SILO #48 的完整设计、调查与验证记录,同时划清它与相关问题 SILO #50 的决策边界。 状态: pgsty/silo#74 已合并为 590aeaa7d,pgsty/silo.pgsty.com#6 已合并为 9805dd7;对应变更完成完整本地验证、远端 CI 与独立 Opus 5 Max 验收。tag、release、package、image、deployment 与 production verification 仍是彼此独立、尚未完成的门槛。 2026-08-28 …
-
ListObjects 快捷路径不能把不存在的桶伪装成空桶
本文是 SILO #32 与 PR #37 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #37 已更新为带 DCO sign-off 的 head e9c5340be,通过正式批准并合并为 49c8aeac4;#32 随后自动关闭。精确 PR head 的 DCO、VulnCheck 与六项 Go CI 全部通过,合并后 main 的 VulnCheck 与六项 Go CI 也全部通过。尚未验证任何 tag、软件包、容器镜像、部署或生产端点已经包含本修复。 …
本文是 SILO #32 与 PR #37 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #37 已更新为带 DCO sign-off 的 head e9c5340be,通过正式批准并合并为 49c8aeac4;#32 随后自动关闭。精确 PR head 的 DCO、VulnCheck 与六项 Go CI 全部通过,合并后 main 的 VulnCheck 与六项 Go CI 也全部通过。尚未验证任何 tag、软件包、容器镜像、部署或生产端点已经包含本修复。 …
-
一个端点,两种权限:彻底分离用户与组状态
本文完整记录 上游 issue minio/minio#21478 与 SILO PR #73 的讨论、修复过程和最终鉴权设计。 截至 2026-08-26 的状态: SILO PR #73 已合并为 2e2377d1c,并保留带 DCO sign-off 的修复提交 58735ee38;八项远端检查全部通过。上游 #21478 与 PR #21482 仍显示 open,但 minio/minio 已归档为只读仓库,无法继续评论或合并。 2026-08-28 组权限善后: 最终发布审查发现 …
本文完整记录 上游 issue minio/minio#21478 与 SILO PR #73 的讨论、修复过程和最终鉴权设计。 截至 2026-08-26 的状态: SILO PR #73 已合并为 2e2377d1c,并保留带 DCO sign-off 的修复提交 58735ee38;八项远端检查全部通过。上游 #21478 与 PR #21482 仍显示 open,但 minio/minio 已归档为只读仓库,无法继续评论或合并。 2026-08-28 组权限善后: 最终发布审查发现 …
-
Conditional DELETE:为什么删除条件只能针对当前对象判断一次
2026-09-13 后续状态: 单对象 If-Match DELETE 后来经 40bee4b7b 合入,主分支又修复了多池串行化与回收。最新公开 Server 20260903 不含这些后续改动;下文保留 8 月 26 日的方案状态。见组件矩阵与 Server changelog。 本文是 SILO PR #12 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #12 仍然 open,原 head 为 5b71a75e,落后最新 main 118 个提交。 …
2026-09-13 后续状态: 单对象 If-Match DELETE 后来经 40bee4b7b 合入,主分支又修复了多池串行化与回收。最新公开 Server 20260903 不含这些后续改动;下文保留 8 月 26 日的方案状态。见组件矩阵与 Server changelog。 本文是 SILO PR #12 的问题分析、设计讨论与修复决策归档。 截至 2026-08-26 的状态: PR #12 仍然 open,原 head 为 5b71a75e,落后最新 main 118 个提交。 …
-
Silo Console 2.2.0 发布说明
说明 已于 2026-08-26 正式发布。 v2.2.0 指向最终提交 7dc4258a6。这棵精确标签树通过了完整 CI 矩阵、漏洞检查与发布流水线。公开 Release 包含六个独立二进制、九个 Linux 软件包和一份 SHA-256 校验和清单。 版本: v2.2.0 · 发布提交: 7dc4258a6 · 状态: 已发布 · 仓库: pgsty/silo-console SILO Console 2.2.0 是一个以正确性与加固为主题的版本。它新增一项功能——对日志与结构化文本的严 …
说明 已于 2026-08-26 正式发布。 v2.2.0 指向最终提交 7dc4258a6。这棵精确标签树通过了完整 CI 矩阵、漏洞检查与发布流水线。公开 Release 包含六个独立二进制、九个 Linux 软件包和一份 SHA-256 校验和清单。 版本: v2.2.0 · 发布提交: 7dc4258a6 · 状态: 已发布 · 仓库: pgsty/silo-console SILO Console 2.2.0 是一个以正确性与加固为主题的版本。它新增一项功能——对日志与结构化文本的严 …
-
为什么 CompleteMultipartUpload 必须返回 ChecksumType:PR #57 评审记录
本文是 SILO #47 与 PR #57 的设计、评审与决策归档。 截至 2026-08-26 的状态: PR #57 已批准并合并为 a96116b1,#47 随后自动关闭。被测 PR head 的九个检查项全部通过,合并后 main 的 Go CI 与 VulnCheck 也全绿。尚未验证任何 tag、release package、container image、deployment 或 production endpoint 已包含本修复。 范围: 让 …
本文是 SILO #47 与 PR #57 的设计、评审与决策归档。 截至 2026-08-26 的状态: PR #57 已批准并合并为 a96116b1,#47 随后自动关闭。被测 PR head 的九个检查项全部通过,合并后 main 的 Go CI 与 VulnCheck 也全绿。尚未验证任何 tag、release package、container image、deployment 或 production endpoint 已包含本修复。 范围: 让 …
-
可选校验和,强制失败:修复 UploadPart 与 UploadPartCopy 兼容性
本文是 SILO #46 的完整设计与实现归档。它记录的并不只是一个 if 条件如何修改,而是一个看似简单的 S3 可选 header,如何一路牵动 multipart 完成语义、复制响应、压缩与加密数据流、兼容基线和发布验证。 状态: 已于 2026-08-24 以 7fea6d5a5 合并进 main(pgsty/silo#46 已关闭);发布与线上验证待完成。 归属: pgsty/silo 服务端仓库。 跟踪: #46。 独立后续: #63 CopyObject + compression …
本文是 SILO #46 的完整设计与实现归档。它记录的并不只是一个 if 条件如何修改,而是一个看似简单的 S3 可选 header,如何一路牵动 multipart 完成语义、复制响应、压缩与加密数据流、兼容基线和发布验证。 状态: 已于 2026-08-24 以 7fea6d5a5 合并进 main(pgsty/silo#46 已关闭);发布与线上验证待完成。 归属: pgsty/silo 服务端仓库。 跟踪: #46。 独立后续: #63 CopyObject + compression …
-
silo-pkg 3.12.0 正式发布
发布日期: 2026-08-24 · 版本: v3.12.0 · 提交: 2b087a1 · 仓库: pgsty/silo-pkg 3.12.0 是直接从主线发布的中版本,包含两条主线:第一,为“只有 ARN 命名空间前缀、却没有指定任何资源”的策略增加严格写入保护;第二,把维护基线推进到 Go 1.27 与 etcd 3.7。它新增两个导出的检查/校验方法,将验证过的消费者下限提高到 Go 1.26;同时也是第一个由 SILO 服务端在具名策略与服务账号策略写入路径上真正启用严格校验的 …
发布日期: 2026-08-24 · 版本: v3.12.0 · 提交: 2b087a1 · 仓库: pgsty/silo-pkg 3.12.0 是直接从主线发布的中版本,包含两条主线:第一,为“只有 ARN 命名空间前缀、却没有指定任何资源”的策略增加严格写入保护;第二,把维护基线推进到 Go 1.27 与 etcd 3.7。它新增两个导出的检查/校验方法,将验证过的消费者下限提高到 Go 1.26;同时也是第一个由 SILO 服务端在具名策略与服务账号策略写入路径上真正启用严格校验的 …
-
总量未知时,进度条应该说什么
状态:已随 SILO Console 2.2.0 发布(16960f7ab);服务端自更新 Console pin(4d6e1ea8e)起内嵌该修复 · 优先级:P1 · 归属:pgsty/silo-console · 关联问题:pgsty/silo#62 · PRD 复核:Claude Fable 5(xhigh)— APPROVE · 实现复核:Claude Fable 5(xhigh),2026-08-23 — APPROVE,无 P0/P1/P2 发现 SILO Console 下载文 …
状态:已随 SILO Console 2.2.0 发布(16960f7ab);服务端自更新 Console pin(4d6e1ea8e)起内嵌该修复 · 优先级:P1 · 归属:pgsty/silo-console · 关联问题:pgsty/silo#62 · PRD 复核:Claude Fable 5(xhigh)— APPROVE · 实现复核:Claude Fable 5(xhigh),2026-08-23 — APPROVE,无 P0/P1/P2 发现 SILO Console 下载文 …
-
数据库通知统一连接串:#53 的兼容性边界
本文是 SILO #53 的产品需求文档与最终设计归档,记录 PostgreSQL/MySQL 桶通知目标的兼容性边界、实现结果与验证证据。 最终决策 SILO 保留 PostgreSQL 与 MySQL notification target,但每种数据库只支持一种当前配置方式: PostgreSQL 必须提供完整的 connection_string; MySQL 必须提供完整的 dsn_string。 旧的五字段形式 …
本文是 SILO #53 的产品需求文档与最终设计归档,记录 PostgreSQL/MySQL 桶通知目标的兼容性边界、实现结果与验证证据。 最终决策 SILO 保留 PostgreSQL 与 MySQL notification target,但每种数据库只支持一种当前配置方式: PostgreSQL 必须提供完整的 connection_string; MySQL 必须提供完整的 dsn_string。 旧的五字段形式 …
-
只预览文本,绝不执行:SILO Console 文本预览 PRD
状态: 已随 SILO Console 2.2.0 发布 · 归属: pgsty/silo-console · 跟踪: pgsty/silo#17 · 审阅: 产品、安全与前端架构三方共识 SILO Console 可以预览图片、PDF、音频和视频,却不能直接查看运维中最常见的小型日志、纯文本、JSON 与 XML。即使对象保存了完全正确的 Content-Type,前端也会在选择渲染器之前把它判为不支持。 恢复旧版浏览器原生预览很容易,却不是正确修复。对象内容由上传者控制;如果把它作为同源 …
状态: 已随 SILO Console 2.2.0 发布 · 归属: pgsty/silo-console · 跟踪: pgsty/silo#17 · 审阅: 产品、安全与前端架构三方共识 SILO Console 可以预览图片、PDF、音频和视频,却不能直接查看运维中最常见的小型日志、纯文本、JSON 与 XML。即使对象保存了完全正确的 Content-Type,前端也会在选择渲染器之前把它判为不支持。 恢复旧版浏览器原生预览很容易,却不是正确修复。对象内容由上传者控制;如果把它作为同源 …
-
Silo 20260806 发布
版本: RELEASE.2026-08-06T00-00-00Z · 提交: 3be10fcc1a44f6620ded0bd303461f9d688cca23 SILO 20260806 是 首个以 Silo 之名发布的版本。上一个版本 20260804 是以 pgsty/minio 名义交付的最后一版;本版本完成了向 github.com/pgsty/silo 的切换,重命名了每一个交付表面——二进制、软件包、容器镜像、systemd 服务、Helm chart——同时刻意原样保留了 …
版本: RELEASE.2026-08-06T00-00-00Z · 提交: 3be10fcc1a44f6620ded0bd303461f9d688cca23 SILO 20260806 是 首个以 Silo 之名发布的版本。上一个版本 20260804 是以 pgsty/minio 名义交付的最后一版;本版本完成了向 github.com/pgsty/silo 的切换,重命名了每一个交付表面——二进制、软件包、容器镜像、systemd 服务、Helm chart——同时刻意原样保留了 …
-
mcli 20260806 发布
发布日期: 2026-08-06 · 版本: RELEASE.2026-08-06T00-00-00Z 距离 mcli 20260804 仅两天,本次发布完成了客户端向 Silo 身份的整体切换。这是一次刻意保持「纯品牌与封闭」性质的发布:--version 与 --help 现在以 Silo 客户端的身份呈现,所有残余的 MinIO SUBNET 外联路径在构建期被关闭,诊断工具链中内置的厂商加密公钥被移除,贡献政策改为无 CLA + 强制 DCO 签署。本周期 零依赖变更、零协议变更 —— …
发布日期: 2026-08-06 · 版本: RELEASE.2026-08-06T00-00-00Z 距离 mcli 20260804 仅两天,本次发布完成了客户端向 Silo 身份的整体切换。这是一次刻意保持「纯品牌与封闭」性质的发布:--version 与 --help 现在以 Silo 客户端的身份呈现,所有残余的 MinIO SUBNET 外联路径在构建期被关闭,诊断工具链中内置的厂商加密公钥被移除,贡献政策改为无 CLA + 强制 DCO 签署。本周期 零依赖变更、零协议变更 —— …
-
Silo Console 2.1.0 发布
发布日期: 2026-08-06 · 版本: v2.1.0 · 仓库: pgsty/silo-console SILO Console 2.1.0 是独立发布 2.0.0 之后的第一个功能版本,做了三件事: 会说两种语言——全部控制台页面、帮助条目与文档链接都能以中文或英文呈现,切换按钮出现在每一页,且不引入任何新的运行时依赖; 读对了指标——仪表盘从 MinIO Metrics V2 名称迁移到 V3,并针对 V3 在底层改变的语义逐条做了显式处理; 在边界情况下不再说谎——全选框与批量操作作 …
发布日期: 2026-08-06 · 版本: v2.1.0 · 仓库: pgsty/silo-console SILO Console 2.1.0 是独立发布 2.0.0 之后的第一个功能版本,做了三件事: 会说两种语言——全部控制台页面、帮助条目与文档链接都能以中文或英文呈现,切换按钮出现在每一页,且不引入任何新的运行时依赖; 读对了指标——仪表盘从 MinIO Metrics V2 名称迁移到 V3,并针对 V3 在底层改变的语义逐条做了显式处理; 在边界情况下不再说谎——全选框与批量操作作 …
-
Silo 20260804 发布
版本: RELEASE.2026-08-04T00-00-00Z · 提交: d88f46ccee345a9c2fabe2d221d9a9e56bc11aec SILO 20260804 是 pgsty/minio 社区分支的一次安全、正确性与发布工程更新。该版本完成 CVE-2026-42600 所开启的节点间存储边界治理,阻止客户端输入冒充服务端计算出的 S3/IAM 策略条件值,恢复流式响应 flush 语义,修复多项 multipart 与版本控制边界问题,加固通知配置迁移,将构建基线升 …
版本: RELEASE.2026-08-04T00-00-00Z · 提交: d88f46ccee345a9c2fabe2d221d9a9e56bc11aec SILO 20260804 是 pgsty/minio 社区分支的一次安全、正确性与发布工程更新。该版本完成 CVE-2026-42600 所开启的节点间存储边界治理,阻止客户端输入冒充服务端计算出的 S3/IAM 策略条件值,恢复流式响应 flush 语义,修复多项 multipart 与版本控制边界问题,加固通知配置迁移,将构建基线升 …
-
解析器认识,Schema 不认:足以带走全部通知的配置键
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 配置 Schema 一致性与可用性问题,不是漏洞;附带一项防御性加固(验证报错不再回显凭据值) 影响范围: notify_nats 的 JWT/NKey/TLS-handshake-first 选项、notify_amqp 的 immediate,以及任何带着启用状态 NATS 目标从 2020 年前配置迁移上来的部署——它的失败会连带压 …
发布状态(2026-09-13 核对): 本文主修复已包含在 20260804 及后续版本中。下文保留当时的调查与验证边界;当前待发布问题见组件矩阵。 定级: 配置 Schema 一致性与可用性问题,不是漏洞;附带一项防御性加固(验证报错不再回显凭据值) 影响范围: notify_nats 的 JWT/NKey/TLS-handshake-first 选项、notify_amqp 的 immediate,以及任何带着启用状态 NATS 目标从 2020 年前配置迁移上来的部署——它的失败会连带压 …