MinIO 进入维护模式:RustFS 的机会窗口已经打开
MinIO 进入维护模式RustFS 的机会窗口已经打开【免费下载链接】rustfsRustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.项目地址: https://gitcode.com/GitHub_Trending/rus/rustfs自建 S3 的世界里刚刚失去它最顺理成章的答案。从 2025 年 6 月官方一次更新删掉约 11 万行代码、顺手抹掉 Web 管理界面到 2025 年 12 月初 MinIO 在 GitHub 仓库 README 里写下「维护模式代码库处于仅维护状态不接受任何新功能、改进或拉取请求」再到 2026 年 2 月官方仓库被归档以及 2026 年 9 月连累计超过 10 亿次拉取的minio/minioDocker 镜像也被整体删除、Docker Hub 上只剩 404——这条时间线里最后保留的完整可部署版本停留在RELEASE.2025-04-22T22-12-26Z此后的安全修复只能「视情况评估」。对一个承载生产数据的存储系统来说「一年多没有正常维护 旧镜像不敢再用」几乎是教科书式的迁移触发条件。而窗口期的另一侧RustFS——一个用 Rust 编写的 S3 兼容分布式对象存储——正处在近 2 万 Star 的上升期仓库里最显眼的模块恰好是为「从 MinIO 迁走」这件事准备的。本文基于 RustFS 当前代码仓库的真实结构、契约文档与测试清单把三件事讲清楚MinIO 维护模式的真实状态、替代者阵营里 RustFS 凭什么排在第一、以及迁移窗口期的现实阻力到底在哪。一、MinIO 维护模式到底砍到了什么程度先厘清事实边界避免把「社区讨论」当成「官方行为」。综合 2025 年 12 月至 2026 年 9 月的多家媒体与社区跟踪报道MinIO 开源侧的收缩是渐进式、四连击的时间事件2025-06一次官方更新删除约 11 万行代码社区版 Web 管理控制台被移除2025-12仓库 README 声明进入 Maintenance Mode不接受新功能、改进与 PRIssue 不再主动审查社区支持转为 Slack 上的 best-effort2026-02官方仓库归档archived不再维护2026-09官方 Docker Hub 镜像minio/minio被整体删除最后版本停留在RELEASE.2025-04-22T22-12-26Z把这几件事串起来看信号比任何单一条都强功能演进停止、代码库冻结、分发渠道拆除。对存量用户而言风险不再只是「没有新功能」而是安全修复渠道从「承诺」退化成「个案评估」——在 AI 加速漏洞挖掘的当下一个冻结超过一年的对象存储镜像本身就是一条合规负债。更深层的背景是 2018 年的许可证风波。MinIO 当年从 Apache 2.0 切换到 AGPLv3把「自建 S3 首选」的一大批用户推到了需要法务评审的位置AGPL 的网络交互条款对 SaaS 形态的二次分发有传染风险这正是企业采购和云厂商选型时最敏感的「许可证陷阱」问题。此后社区一直需要一个「Apache 2.0 S3 兼容 分布式纠删码」的完整替代而 RustFS 的 README 第一屏就把这一点写成了产品定位Unlike other storage systems, RustFS is released under the permissible Apache 2.0 license, avoiding the restrictions of AGPL.仓库根目录的 LICENSE 全文即 Apache License 2.0没有任何附加条款。对一个把「无许可证风险」当卖点的存储系统这一页文件本身就是最硬的证据。二、替代者盘点RustFS 为什么排第一维护模式宣布后社区迅速整理出替代品名单CephRADOS GatewayLGPL成熟但重、SeaweedFSApache 2.0擅长海量小文件、GarageRust、轻量但 AGPL、OpenStack Swift s3api适合既有 OpenStack 环境、VersityGW文件系统网关以及一批新项目如 MaxIOFS、liteio 等。RustFS 在 2026 年 9 月更新的社区盘点中被单独标注为「目前最值得关注的 MinIO 直接替代品之一」而此前「弃用 MinIO拥抱 RustFS」一类的迁移向文章在中文技术社区已连续数月出现——热度本身不是论据但值得追问它为什么是 RustFS。结合仓库源码RustFS 与这个名单上所有对手的差异点有三个且都能落到代码1. 定位是「MinIO 的直接继任者」而不是「又一个 S3」。README.md 的自我描述是「combines the simplicity of MinIO with the memory safety and raw performance of Rust」并且功能矩阵与 MinIO 逐项对齐版本控制、Object LockWORM、SSE 三类加密、生命周期管理ILM与远端 S3 分层、桶复制、站点复制Site Replication、桶配额、事件通知、审计日志、Web 控制台、Helm Chart此外还多出 OpenStack Swift 协议、Keystone 认证、SFTP/FTPS/WebDAV、Iceberg REST CatalogS3 Tables Preview等 MinIO 没有的协议面。2. 工程形态是面向高并发热路径的系统不是拼装出来的兼容层。仓库是一个 60 crate 的 Cargo workspaceARCHITECTURE.md 给出的请求链路是严格单向分层的HTTP request → server (TLS, auth, routing, compression) → app/object_usecase (validation, policy, lifecycle) → storage/ecfs (erasure coding, encryption, checksums) → ecstore (disk pool selection, data distribution) → rio (reader pipeline: encrypt → compress → hash → write) → io-core (buffer pool, storage profiling, admission control) → local disk / remote disk via RPC纠删码引擎在 crates/ecstore/279 个源文件读者 I/O 管线在 crates/rio/加密→压缩→哈希→写盘的单遍 reader 链缓冲池与准入控制在 crates/io-core/。仓库甚至用 scripts/check_layer_dependencies.sh、scripts/check_architecture_migration_rules.sh 这类 CI 守卫脚本把「层与层之间不许反向依赖」固化成提交门禁。这种工程纪律在同类开源对象存储里很少见也是它敢于在 changelog 里逐条写下 KMS 失败分类、锁 RPC 超时风暴防护这类细节的原因。3. 最关键的一点它把 MinIO 的磁盘格式当作一等公民对待。这是整个替代者名单里几乎没有第二个做到的事后文第三节详述。三、迁移窗口拉取式迁移让「不停机换库」成为可能对象存储迁移的传统姿势是rclone/mc mirror全量拷贝 停写窗口大集群上动辄数周。RustFS 的 On-Demand MigrationODM 模块把这个问题换了一个解法把源桶「挂」过来读到哪搬哪。ODM 将外部 S3 兼容源桶MinIO、AWS、R2、GCS、Azure 等 provider绑定到一个本地桶。客户端 GET 一个本地不存在的 key 时RustFS 从源拉取、流式回给客户端、同时落盘本地——同一次读取完成迁移之后的所有读取全部本地化。模块默认开启可用RUSTFS_ON_DEMAND_MIGRATION_ENABLEDfalse全局关闭实现位于 rustfs/src/on_demand_migration/核心文件分工明确文件职责config.rs每桶配置模型与参数边界阈值、并发、带宽、TTLsource_client.rs出站源客户端多 providerpull.rs拉取写回管线breaker.rs/negative_cache.rs每源熔断器 / 每 key 负缓存backfill.rs后台全量回填任务带可恢复 checkpoint配置走 Admin API且强制先dry-run探测源再落盘——这是很典型的「迁移是高风险操作」的工程态度# 1. dry-run验证源可达HeadBucket 可列举一次 ListObjectsV2不保存 awscurl --service s3 --region us-east-1 \ --access_key $AK --secret_key $SK \ --request PUT --header Content-Type: application/json \ --data $(cat /tmp/odm.json) \ http://host:9000/rustfs/admin/v3/on-demand-migration/photos?dry-runtrue # 2. 去掉 dry-run 保存配置集群内元数据自动刷新 # 3. GET .../status 查看每节点的熔断器、队列深度、拉取计数响应头x-rustfs-on-demand-migration: source会标记每一个来自源桶的响应配合rustfs_on_demand_migration_*指标拉取字节数、失败数、熔断状态、延迟分位迁移进度是可观测的而不是黑箱等待。防循环回源anti-loop marker、单 key 单飞singleflight、有界拉取队列、可选带宽限制这些生产级保护都写在模块文档里而不是 PPT 里。而迁移之所以「敢在原地切换」底层还有一块很少被宣传的基石RustFS 与 MinIO 的纠删码在字节层面同源。docs/architecture/erasure-coding.md 是仓库中标注为 normative规范级的契约文档其中写明RustFS 采用与 MinIO 完全同族的GF(2⁸) 上的 Reed–Solomon、Vandermonde 生成矩阵、算法标识rs-vandermonde、1 MiB 纠删块、HighwayHash-256 bitrot 校验——「这正是与 MinIO 实现字节级xl.meta互操作的可能」。docs/architecture/minio-file-format-compat.md 则把互操作能力拆成了带代码出处的矩阵未加密的xl.metameta_ver 1–3含 inline、multipart、versioned、delete marker可读重写时归一化到 meta_ver 3.metadata.bin桶配置msgpack字段名与 MinIO 的bucketMetadata一一映射可读并导入config/iam/下的 IAM 配置导入且归一化遗留字段别名导入器是单向幂等的实现在 crates/ecstore/src/bucket/migration.rs 的try_migrate_bucket_metadata/try_migrate_iam_config由 rustfs/src/startup_bucket_metadata.rs 在启动时执行从.minio.sys布局迁到.rustfs.sys。也就是说RustFS 给出的迁移路径不是「重新拷一份数据」而是「同一块纠删码分片换一套读它的运行时」——对已有 MinIO 卷这意味着磁盘格式层的迁移成本趋近于零网络层只剩元数据与可选的对象拉取。兼容性广度方面仓库没有用「全兼容」这种模糊说法而是直接跑 s3tests 并维护四份测试清单docs/architecture/s3-compatibility-matrix.mdimplemented_tests.txt556 例、unimplemented_tests.txt37 例、excluded_tests.txt317 例厂商专有行为、lifecycle_behavior_tests.txt53 例。556 对 37且「尚未通过」项被明确列出——这种「把边界写在明处」的兼容矩阵比任何兼容性宣传都更有工程说服力。四、窗口期的冷水阻力是真实存在的严谨地讲这个「机会窗口」不等于「免费通道」。仓库自己的文档把迁移的边界标得非常清楚任何基于 RustFS 做迁移决策的团队都应当把以下几点纳入方案1. MinIO SSE 对象是最大的硬骨头。按 minio-file-format-compat.md 的 Part CSSE-S3 / SSE-KMS / SSE-C 对象在默认构建下是fail closed拒绝读取并给出诊断需要用rio-v2feature 构建的迁移二进制cargo build时启用不在 default/full 构建内且要求持有源 MinIO 的静态主密钥RUSTFS_SSE_S3_MASTER_KEY与源端一致而凡是由外部 KES / KMS 插件 / MinKMS 密封 DEK 的对象明确不在支持计划内只能先在 MinIO 侧解密或重加密。crates/rio-v2/ 的 reader 专门补齐了 MinIO 的 sealed-key 槽位解码decrypt_minio_kms_data_key同时兼容sealed‖iv‖nonce与旧版 JSON 两种封包形态。换句话说明文与静态密钥加密的对象可以近乎零成本迁移托管 KMS 加密的对象需要额外工程。2. 迁移是单向的。同一份契约文档明确「RustFS 写入的卷MinIO 二进制无法回读」MinIO 找.minio.sysRustFS 写.rustfs.sys反向的 SSE 对象同样不支持。切过去就是单行道——这本身是合理的架构决策避免双写脑裂但意味着回滚方案必须建立在「源桶保留」上ODM 文档的升级/回滚章节为此专门写了 rc.5 混合版本的坑旧版本节点写桶元数据会丢弃 ODM 配置字段且不可恢复因此必须全节点升级后再启用 ODM。3. S3 兼容不是 100%且差距是可见的。37 个 unimplemented 用例里有桶访问日志、POST Object 表单上传的校验和处理等站点复制Site Replication也明确要求对端是 RustFS 兼容的 Admin API通用 S3 服务只能作为桶复制的数据目标。对于依赖这些边角行为的存量集成需要先过一遍 scripts/s3-tests/ 的清单。4. 单节点单盘形态不能原地扩展。README 的 Pool expansion notice 沿用了 MinIO 的拓扑规则SNSD单机单盘只能作为独立本地路径存在升级多盘需要新建部署 S3 层迁移。这是从 MinIO 迁移时最需要提前规划的容量/拓扑项。五、接棒能力窗口期考验的是「持续交付」机会窗口对谁打开最终取决于谁能持续接住。评估一个存储系统的社区接棒能力不看 Star 曲线看三样东西修复节奏、测试覆盖、文档与运维资产。修复节奏。当前 CHANGELOG.md 的 Unreleased 部分密度相当高两条 GHSA 级别的 SigV4 签名头漏洞修复未签名x-amz-*头可导致预签名 PUT 被升级为 CopyObject / 任意属性注入、站点复制中断恢复的 30 秒有界重试排空 600 秒全量对账、锁 RPC 超时风暴的驱逐限流新增rustfs_remote_lock_*指标族、KMS 失败从一律 500 拆分为 400/403/401 之外的完整状态分类、多池异构拓扑下逐池解析纠删 parity修复小池解析出 0 个数据分片导致 Reed-Solomon 构造 panic 的缺陷。这些不是功能 PR而是一个系统在按生产事故的速度迭代正确性——对一个「维护模式」的对手而言这是质变。测试覆盖。crates/e2e_test/ 下有 94 个端到端测试文件按主题命名到回归级别degraded_read_eof_regression_test.rs、heal_erasure_disk_rebuild_test.rs、degraded_listing_availability_test.rs、checksum_upload_test.rs……加上 556 例 s3tests 门禁、crates/e2e_test/src/distributed/ 的分布式场景、以及 scripts/s3-tests/ 里与 Ceph s3tests 用例的双目标对比工具compare_dual_targets.py兼容性主张是被 CI 持续验证的而不是文档断言。运维资产。仓库里的文档结构本身就是一种「接棒声明」docs/architecture/ 下 40 份契约文档每份都写明 Source of truth 对应的源码符号scripts/check_doc_paths.sh在每次提交时校验路径有效性docs/operations/ 下 50 份运维 runbookKMS 灾备演练、滚动重启、decommission 兼容性、锁风暴防护、分层 ILM 调试。高变更风险的纠删码/元数据改动要求对抗性评审 真实 MinIO 迁移样本的回归测试规则直接写在 docs/architecture/erasure-coding.md 的 §13。协议面与部署面。管理协议不止 S3Swift API 与 Keystone 认证原生支持SFTP/FTPS/WebDAV 通过StorageBackendtrait 复用同一套 multipart 流式上传路径S3 Tables 以 Iceberg REST Catalog 形态交付Preview。部署形态覆盖 Docker/Podman、Helmhelm/rustfs/Chart 有独立版本治理脚本、Nix Flake NixOS 模块nix/rustfs-module.nix乃至 x-cmd。容器默认以非 root 用户rustfs10001:10001运行README 连 bind mount 的属主要求都写明了。管理面则是完整的 Web 控制台9001 端口 Admin API/minio/前缀下的集群管理、IAM、指标结语MinIO 维护模式的本质是自建 S3 生态第一次出现「事实标准真空」。真空期最危险的错觉是以为迁移可以无限延期——但镜像删掉之后每一天的存量都停留在一个没有安全承诺的版本上。RustFS 给出的答案不是「换个地方存数据」而是三层递进的能力Apache 2.0 的许可证安全感、与 MinIO 同源纠删码带来的磁盘格式层零成本、以及 On-Demand Migration 提供的不停机渐进切换。阻力同样真实且已被仓库自己写明托管 KMS 加密对象、单向不可逆、37 个未通过的兼容用例、SNSD 拓扑不可扩展。对一个窗口期而言这些「诚实的边界」比「全兼容」的广告更有价值——它让迁移决策可以建立在工程评估上而不是叙事上。接下来的观察点也很明确ODM 从「模块」到「默认推荐路径」的成熟度、rio-v2迁移构建从 feature-gated 走向独立发布形态的进度以及 s3tests 未通过清单的收缩速度。这三条曲线决定 RustFS 们接过的究竟是机会还是责任。【免费下载链接】rustfsRustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.项目地址: https://gitcode.com/GitHub_Trending/rus/rustfs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

向日葵vs ToDesk 2026实测:谁在偷偷压你的画质?

向日葵vs ToDesk 2026实测:谁在偷偷压你的画质?

向日葵vs ToDesk 2026实测:谁在偷偷压你的画质?一、文件传输和画质:远程办公最容易踩的坑出差在外,需要从公司电脑传一个2GB的PSD设计稿到本地;周末在家,需要远程剪辑电脑上的视频素材;旅行途中…

2026/10/10 2:02:49 阅读更多 →
如何为P2WLAN配置HTTPS反向代理与TLS:安全公网部署完整指南

如何为P2WLAN配置HTTPS反向代理与TLS:安全公网部署完整指南

如何为P2WLAN配置HTTPS反向代理与TLS:安全公网部署完整指南 【免费下载链接】p2wlan 跨平台 P2P 虚拟局域网(VirtualLAN)工具,让异地设备像在同一局域网中互联。支持 NAT 穿透、IPv6 直连、房间组网与 Relay 回退,覆盖 Windows / macOS / Lin…

2026/10/10 2:02:49 阅读更多 →
Context Hub 中的 Azure Data Tables Python 客户端实战:Azure Table Storage 与 Cosmos DB for Table 开发指南

Context Hub 中的 Azure Data Tables Python 客户端实战:Azure Table Storage 与 Cosmos DB for Table 开发指南

【免费下载链接】context-hub 项目地址: https://gitcode.com/gh_mirrors/co/context-hub 点击查看 免费下载 本指南以 Context Hub 仓库中 content/azure/docs/data-tables/python/DOC.md 为权威主体,系统讲解 Python 生态中 azure-data-tables&#x…

2026/10/10 2:01:49 阅读更多 →

最新新闻

从生成骨架到可维护测试,深入理解 CDS Unit Test 测试类结构的精炼过程

从生成骨架到可维护测试,深入理解 CDS Unit Test 测试类结构的精炼过程

在 ADT 里通过向导为一个 CDS View Entity 创建 ABAP Unit Test 时,系统很快就能生成一套看起来已经相当完整的测试类。类定义有了,class_setup、setup、class_teardown 也有了,CL_CDS_TEST_ENVIRONMENT 已经出现,甚至连执行 CDS 查询的 SELECT 语句都准备好了。 但生成测…

2026/10/10 2:52:06 阅读更多 →
2026缺陷管理工具横评:从提Bug到上线复盘的全流程选型指南

2026缺陷管理工具横评:从提Bug到上线复盘的全流程选型指南

你有没有经历过这种凌晨:手机在床头第三次震起来,打开消息一看,三天前随手置为“已修复”的那个Bug又被测试同学重开了,附带一句“请重新验证”。我的第一反应不是烦躁,而是好奇——这个Bug明明是昨天刚验证通过的&…

2026/10/10 2:52:06 阅读更多 →
单片机毕设选题推荐:基于WIFI传输的室内环境数据实时上传与超标处置系统设计 基于单片机的本地显示+远程监控室内空气安全防护系统设计(030120)

单片机毕设选题推荐:基于WIFI传输的室内环境数据实时上传与超标处置系统设计 基于单片机的本地显示+远程监控室内空气安全防护系统设计(030120)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/10 2:52:06 阅读更多 →
Python + Flask + ECharts 数据可视化大屏实战:从接口到图表完整搭建

Python + Flask + ECharts 数据可视化大屏实战:从接口到图表完整搭建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 2:52:06 阅读更多 →
芯观察|定制芯片成高端工控标配

芯观察|定制芯片成高端工控标配

过去,国内工业设备的升级大多采用标准化的通用芯片,配合后期软件调整,基本能满足常见生产需求。但随着智能制造设备向高精度、高可靠、差异化与国产化方向快速演进,通用芯片的短板也越来越明显——功能冗余、功耗偏高、适配困难、…

2026/10/10 2:52:06 阅读更多 →
Git误操作急救指南:reset、reflog和丢失代码恢复实战

Git误操作急救指南:reset、reflog和丢失代码恢复实战

Git误操作急救手册,听起来像新手专用的速查卡,但以我多年跟Git打交道的经验,天天用Git的老手也一样会在某个深夜被reset、rebase、clean这些命令踢进坑里。更关键的是,这件事本身没那么可怕——绝大多数误操作都能恢复&#xff0c…

2026/10/10 2:51:06 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →