兼容性
普通 S3 应用通常可以不改代码,用 SILO 替换 MinIO。 常用 S3 API、SigV4、SDK 接入方式和对象磁盘布局延续上游;部署、权限及复制状态需要按下列条件检查。因此,SILO 是有条件的 drop-in replacement。
正常用法无需适配,获得新增能力或正确性修复。
主要影响展示、界面操作和返回信息,通常不改业务代码。
命中触发条件时,需要验证或调整部署、策略、工具及升级流程。
核对日期:2026-09-16,发布状态更新于 2026-09-17。 下表汇总分叉以来的源码与配套组件变化;其中的服务端变化已随 Server 20260916 发布,哪些修复不在更早的 Server 20260903 中,以组件版本矩阵为准。24 项是用户场景分类,不是 API 数量、兼容率或故障概率。
🟢 兼容或改进:12 类
这些能力在正常用法下无需迁移适配;依赖旧错误行为、混合版本或历史异常状态的情况另列于橙色项。
| 类别与一句话变化 | 触发条件 | 影响范围与操作 | 详情索引 |
|---|---|---|---|
| G01 · 完整 Web 管理控制台 恢复桶、对象、用户、策略和系统的完整 Web 管理。 |
通过浏览器管理部署。 | 管理界面增强;普通 S3 应用无需改动。 | Console 功能 |
| G02 · 中文界面与文本预览 增加中英双语和有界、安全的文本预览。 |
切换界面语言或预览文本对象。 | 影响 Console 使用体验,不改变对象内容。 | 双语界面、文本预览 |
| G03 · 桶级 CORS 原有 CORS 接口开始实际保存和执行逐桶跨域规则。 |
浏览器跨域访问,并配置了桶级 CORS。 | 该桶规则覆盖全局 CORS;对象访问仍需授权。 | CORS 行为 |
| G04 · 原生健康检查 新增 silo healthcheck 命令,便于容器和运维探测。 |
主动采用新探针命令。 | 原有 HTTP 健康端点继续可用。 | 命令与范围 |
| G05 · 客户端校验和审计 新增 mcli checksum verify,读取对象并核验校验和。 |
主动运行完整性审计。 | 只读检查和报告,不修改或修复对象。 | 审计命令 |
| G06 · 上传与复制校验和修复 合法上传、分片完成和复制更准确地计算、保存及返回校验和。 |
使用相关上传或复制路径。 | 改善 SDK 互操作;非法请求的变化见 O04。 | 分片上传、S3 修复 |
| G07 · 加密与压缩处理修复 修正 SSE-C、KMS、压缩与复制组合中的数据及逻辑大小处理。 |
使用这些加密、压缩或复制组合。 | 改善新请求的正确性;历史损坏不会因此全部自动修复。 | SSE-C 与历史对象、联邦复制 |
| G08 · 桶配置并发更新修复 桶配置共用元数据锁,防止并发更新互相覆盖。 |
同时修改策略、生命周期、加密等桶配置。 | 管理操作更可靠,现有调用方式不变。 | 共享配置锁 |
| G09 · 标签与对象锁复制修复 复制更准确地保留并排序标签、保留期与锁状态。 |
使用标签、Object Lock 的复制或修复。 | 减少状态丢失与旧事件覆盖;混合版本见 O07。 | 标签排序、对象锁排序 |
| G10 · 池迁移与数据修复改进 再平衡、退役及修复更准确地处理标签、版本和删除标记。 |
迁移存储池、执行 heal 或恢复复制。 | 改善元数据保留与重试;历史异常仍需检查。 | 多池一致性、复制恢复 |
| G11 · 通知与流式推送修复 修正 NATS/AMQP 配置识别,以及通知、Select 等流式响应刷新。 |
使用相应通知目标或流式接口。 | 配置与事件输出更准确;旧数据库配置见 O03。 | 通知配置、流式响应 |
| G12 · 运行稳定性与资源回收 修复并发采集、缓冲区所有权和连接回收等问题。 |
并发读写、指标采集或取消请求。 | 减少相关崩溃与资源问题,不代表所有负载都更快。 | 读缓冲修复、运行与观测 |
🔵 轻微差异:4 类
普通应用通常无需调整;硬编码产品文案、指标含义或响应字段的工具仍应检查。
| 类别与一句话变化 | 触发条件 | 影响范围与操作 | 详情索引 |
|---|---|---|---|
| B01 · 产品名称与展示标识 横幅、日志、HTTP 产品身份及界面展示改为 SILO。 |
阅读输出,或按产品名称匹配规则。 | 展示变化;硬编码名称的脚本需调整,安装变化见 O01。 | 身份变化、客户端输出 |
| B02 · 控制台列表改为分页 对象列表按游标加载,排序、筛选和选择作用于当前页。 |
在 Console 浏览、筛选或批量选择对象。 | 操作习惯有变化,应用直接调用 S3 的方式不变。 | 分页边界 |
| B03 · 监控与诊断信息更完整 新增诊断指标,并修正配额、复制等计数或状态含义。 |
使用对应指标、仪表盘或告警。 | 原指标命名空间保留;核对相关展示和告警规则。 | 指标变化、Console 指标 |
| B04 · API 返回字段更丰富 部分复制、分片和 Console 响应增加校验和或会话字段。 |
读取这些 API 的返回结果。 | 标准客户端通常可处理;拒绝未知字段的解析器见 O05。 | 分片响应、复制响应、Console API |
🟠 按条件检查:8 类
命中条件,就检查对应项。 这里不表示“一定很少发生”:例如部署名称变化影响迁移管理员;定制签名则主要影响自制客户端。
| 类别与一句话变化 | 触发条件 | 影响范围与操作 | 详情索引 |
|---|---|---|---|
| O01 · 安装与启动配置 交付物改名为 silo / mcli,需核对服务、镜像、目录和权限。 |
从 MinIO 软件包、容器、systemd 或 Helm 迁移。 | 管理员执行一次部署迁移检查,通常不改业务代码。 | 容器迁移、软件包与账号、客户端配置 |
| O02 · 自定义权限策略 改密、永久删除版本及部分桶操作采用修正后的授权规则。 |
自定义 Allow/Deny、对象 ARN 授权桶操作,或使用来源 IP 条件。 | 谁能做什么可能变化;验证有效权限和代理信任配置。 | 密码权限、版本删除、桶授权、代理信任 |
| O03 · 旧认证及通知配置 旧式认证、数据库通知及部分 TLS、环境文件用法需调整或验证。 |
OIDC HMAC token、旧数据库分散参数、老代理/TLS 或特殊环境文件写法。 | 可能影响登录、通知或启动;按对应配置迁移。 | OIDC 算法、通知连接串、TLS、环境文件 |
| O04 · 依赖旧错误行为的程序 校验、条件、错误码、退出码和列表上限不再沿用部分旧行为。 |
依赖错误请求成功、忽略 If-Match,或假设分片上传列表一次超过 1,000 条。 |
检查错误处理、重试、分页与批处理的最终退出码。 | 校验错误、条件删除、分片列表、CLI 退出码 |
| O05 · 自制客户端与管理工具 私有接口、签名覆盖、Console 自动化及 Go 包路径存在变化。 |
使用 ReadMultiple、手写签名、严格响应解析、Go 嵌入或定制 Console。 |
定制集成和编译需单独验证;普通 S3 SDK 不使用私有存储接口。 | 私有接口、签名、Console API、Go 模块 |
| O06 · 多池条件操作与新分片模式 多池写删更严格地核实元数据,strict 分片列表另有升级准备要求。 |
多池条件写、指定版本删除,或显式启用 strict 分片列表。 | 故障时可能返回 503,即使 GET 仍成功;strict 需升级全部 writer 并排空旧上传,默认仍为 legacy。 | 多池条件、strict 契约 |
| O07 · 跨站复制、混跑和回滚 IAM 撤销与桶配置删除状态要求协调升级和恢复。 |
多站点、共享 IAM、不同版本混跑或降级恢复。 | 保留完整恢复点并联测各端;不能假定只换回旧程序即可回滚。 | IAM 升级、配置收敛、回滚边界 |
| O08 · 自更新及上游在线服务 原地自更新、SUBNET 与上游托管支持集成被停用。 |
使用 admin update、mcli update 或 MinIO 在线支持流程。 |
改用软件包、镜像或编排器升级;常规 S3 访问不受此项影响。 | 服务端更新、客户端更新、SUBNET |
比较范围与版本边界
服务端对照的是分叉时的上游源码 27742d469462(2025-12-03);常见的上游最后发行版标签日期是 2025-10-15,两者不是同一个比较点。Console、mcli 的各自基线见控制台说明与客户端说明。本页覆盖 API、功能、可见行为与运维变化,同一修复可涉及多个场景。
SILO 对上游 MinIO/MC 保持尽最大努力兼容;正式支持和发布验收的组合为 SILO + SILO Console + mcli + silo-pkg。保留协议、环境变量和磁盘布局,不构成任意上游版本混跑或双向降级的承诺。服务端详细审计保留历史基线和逐项说明,组件版本矩阵区分已发布组件与待发布源码。
曾加入后撤回的访问频率池间分层不属于上述 24 类:它不在分叉时的上游功能中,也从未进入任何公开 Server 版本:20260903 早于该特性,20260916 发布前已将其移除。普通生命周期过期、远程分层、再平衡和池退役仍然保留。
准备迁移时,从 O01–O08 筛选与你有关的条件,再按迁移指南执行。
组件版本
SILO 已发布组件、截至 9 月 16 日的主分支修复与协调升级要求。
密码权限迁移
ChangeMyPassword 与 CreateUser 拆分的适用版本、策略迁移与回滚限制。
访问频率分层移除
可选的 GET 频率池分层特性为何被移除、包含该特性的构建如何迁移,以及升级验收证明了什么、没有证明什么。
Silo 与 MinIO 服务端兼容性
经过源码验证的 Silo 服务端分叉兼容性审计:二进制、配置、S3 与管理行为、存储内部协议、软件包、容器与 Helm。
从 MinIO 迁移到 Silo
哪些改变、哪些不变,以及容器部署如何切换。软件包安装见《原生软件包迁移》。
MCLI 客户端兼容性注记
pgsty/mc 的兼容性、行为变化、安装方式与当前版本
原生软件包迁移
silo RPM/DEB 软件包相对 minio 软件包的变化:文件布局、服务账号、接管语义与注意事项。
Console 兼容性注记
SILO Console 与上游 MinIO Console 的差异
特性设计
Silo 在上游 MinIO 之外新增能力的设计笔记——先落笔,再落地。