Repository navigation
v1.22.0
v1.22.0
v1.21.x 之后的硬化版:配额/权限正确性、只读审计与升级/迁移脚本。
新增
oss-server tier-audit [--json]:只读列出未绑定源整对象摘要的已归档版本(legacy parts / 空 sha),有未绑定项 exit 1;绝不回填或改写 meta。scripts/upgrade-preflight.sh:升级前只读检查存量裸 UUID MPU、M6 无site_token远端、M7 未映射 REPLICA;支持--json/--strict。scripts/single-to-cluster.sh:单机→集群单向 re-ingest(rclone);版本化/开锁桶 fail-closed,明确不保留历史版本/ACL/策略/加密等,非无损迁移。- AP 信任链 E2E:真实 listener + ConnectInfo 覆盖重复/畸形头、非可信 peer、缺 ConnectInfo fail-closed(测试资产)。
修复
- 桶数量硬配额并发:Raft 在 leader append 前原子判定(只串行 BucketCreate);standalone 在
BEGIN IMMEDIATE写锁内 count+insert。不新增ControlResponse变体,混版不分叉;并发 quota=2 恰 2 成功 1×403。 - Raft follower 权限追赶:
require_manager/require_member在本地成员行 miss 时先追上 leader 已应用点再判定,修复滞后副本误 403;超时仍 fail-closed。 - tier 100MiB 用例 flake:测试改用文件库,避免
sqlite::memory:连接回收后 schema 丢失。
验证
cargo test -p oss-server:66 suites / 0 failed;clippy-D warnings、fmt 0。tests/e2e_m9.sh:stretch 64/0/1;sync 85/0/1(含 Batch Delete 异步作业与 marker 同 id)。- Level C:v1.20.1 ↔ v1.21.1 控制面混版 147/0/0;v1.13.1 旧端不再支持。
仍未交付
硬字节/对象数配额、M8-2 运行态实时复制、真实 PrivateLink 身份、Level C 完整双向混写与数据面滚动。