轻量级对象存储新选择:RustFS替代Minio实战指南
前段时间帮朋友收拾家里的NAS他一开始选的是Minio理由很简单S3协议生态成熟、教程多、看起来也轻量。但真用起来才发现问题一个接一个docker pull minio 反复失败镜像拖到一半就超时好不容易装上了想改启动账户密码又提示环境变量没生效准备开纠删码一看文档要求至少四块盘起步家里两台老机器根本凑不齐。他半夜发消息问我要不换一个我翻了翻RustFS直接在他那台小主机上跑了一轮实测结论是在个人NAS、内网文件服务、小规模对象存储这些场景里RustFS确实比Minio省心不少。这篇就把我这段时间的试用记录、部署步骤和踩过的坑完整盘一遍。1. 先说结论Minio在哪些场景下真的“不好用”了1.1 部署第一步就卡住镜像拉不下来很多人接触Minio的第一站就是Docker原因很简单一行命令就能起服务。但实际执行docker pull minio/minio的时候不少人会碰到镜像层下载到一半报错、连接重置、超时这类问题。公共镜像仓库的网络波动是一方面另一方面是Minio的镜像本身不算小历史标签又多拉取过程中一旦断流就得从头开始反复几次之后心态基本就崩了。这不是你的姿势有问题而是这种“大镜像公共仓库”的组合在弱网环境下天然脆弱。群里经常看到有人问“docker minio pull失败怎么办”常规解法是换用二进制包安装但Minio的二进制体积也不小下载源同样可能慢。RustFS的单文件二进制就小很多尤其适合这种场景直接下载压缩包、解压、运行三步走完。如果你只是想要一个能跑起来的S3兼容存储没必要非跟镜像较劲。1.2 账号密码改不动权限配置绕来绕去Minio的启动账号密码是通过环境变量传入的标准做法是设置MINIO_ROOT_USER和MINIO_ROOT_PASSWORD。实际操作中经常遇到三种尴尬情况改了环境变量但启动时没生效容器里还是默认的minioadmin改完密码后旧客户端还在用老密码连接排查半天才发现是客户端侧的缓存问题配置了访问密钥后又想追加一个新的管理员账号结果发现Minio的账号管理依赖外部身份系统或者命令行工具没有一个直观的配置文件可以直接编辑。尤其是“minio无法修改启动账户密码”这个问题本质原因是环境变量只在首次初始化时写入数据目录后续再改环境变量如果数据卷里有旧的配置服务端未必按新变量来。对新手来说这个设计相当劝退。RustFS的做法更直接账号密码明文写在配置文件里改完重启服务就生效逻辑简单到不需要翻文档。1.3 资源占用不低纠删码门槛还高Minio是Go写的并发能力不差但内存占用在长时间运行后并不算“轻”。我在一台2GB内存的旧笔记本上跑Minio只放了几百个小文件常驻内存就爬到400MB以上。放到群晖这类小内存设备上再叠加其他容器内存压力立刻显现。更麻烦的是纠删码。Minio的纠删码需要至少4块盘才能启用官方推荐12块盘起步这个设计面向的是生产环境。但很多家庭用户只有一块系统盘加一块数据盘想用In-Memory也好、单机模式也好都体验不到数据冗余能力。RustFS的纠删码配置更灵活数据盘不够的时候可以退化为普通单盘模式数据盘多了再按副本或纠删策略来个人用户不用一上来就凑四块盘。2. RustFS是什么凭什么能替换Minio2.1 项目定位一个更轻的S3兼容文件存储服务RustFS并不是要做一个大而全的对象存储平台它的定位更接近“内网文件存储服务”兼容S3协议提供对象上传、下载、删除、列举接口支持多用户和访问密钥配置简单部署体积小。你原来用Minio做的很多事比如给应用提供S3存储、做备份集中地、给内网机器做文件同步RustFS基本都能接住。它和Minio最大的区别在“边界感”。Minio从单机到分布式都能跑功能也越来越重控制台里有各种菜单、各种监控面板但对个人用户来说90%的功能可能都用不上。RustFS把范围收敛得很小提供核心的对象存储能力Web管理界面只保留必要的运维功能剩下的交给S3客户端工具去操作。这种克制反而让它在个人场景里更好用。从技术角度看RustFS的核心是一个常驻服务进程接收S3请求把对象数据写到本地磁盘并维护元数据索引。单机模式下所有数据存到指定目录多盘模式下可以按纠删码或副本策略分散存储。对外暴露的接口和Minio高度兼容现有的mc、s3cmd、AWS SDK等工具基本都能直接对接。2.2 为什么用Rust写收益在哪里选择Rust不是赶时髦而是实打实带来了几个好处内存可控Rust没有GC内存的分配和释放都在编译期和代码逻辑中明确运行时的内存曲线比Go写的服务更平稳。我实测跑相同负载RustFS的常驻内存大约只有Minio的三分之一到一半单文件静态编译Rust的编译产物可以把所有依赖打进去跑在大多数Linux发行版上不需要额外装运行库。这一点对老旧的NAS、工控机、树莓派很友好你不会遇到“缺GLIBC版本”这类问题高并发IO处理能力强Rust的异步IO模型在处理大量小文件时优势明显上传下载的吞吐量在同配置机器上不输Minio某些场景甚至更好。当然Rust也带来一些学习成本比如如果你想自己编译RustFS需要对Cargo和Rust工具链有点了解。但绝大多数人不用自己编译直接用官方发布的Release即可编译的事交给项目维护者。2.3 和Minio的核心能力对比对比维度MinioRustFS部署形态Docker镜像为主支持二进制单文件二进制支持Docker静态编译否依赖部分系统库是单文件直接运行默认资源占用偏高常驻内存300MB以上较低实测常驻几十到百来MB配置方式环境变量外部命令配置文件改完重启即生效纠删码最少4块盘建议12块盘配置灵活盘不够可退化为单盘Web管理界面功能丰富但偏重精简但够用S3协议兼容非常成熟主流操作兼容账号管理环境变量初始化外部身份系统配置文件直接管用户这不是说RustFS全面优于Minio。如果你的场景是生产环境、多租户、复杂权限、冷热分层Minio依然是更稳妥的选择。但对于“docker镜像拉不下来”“机器配置不高”“想简单改密码”“就想有个内网S3存储”这四类需求RustFS确实更顺手。3. 实操从零把RustFS跑起来3.1 Linux下安装二进制包是首选我这次在Ubuntu 22.04上操作步骤很简单。先到项目的Release页面下载对应架构的压缩包解压后会得到一个可执行文件。假设下载的是rustfs-linux-amd64.tar.gztar -zxvf rustfs-linux-amd64.tar.gz chmod x rustfs sudo mv rustfs /usr/local/bin/ rustfs --version看到版本号输出后再准备配置文件。RustFS默认会从一个固定的路径读取配置但我建议用--config参数显式指定方便后续维护。创建一个目录放配置和数据mkdir -p /opt/rustfs/data vim /opt/rustfs/config.toml配置文件内容大概长这样server { listen 0.0.0.0:9000 data_dir /opt/rustfs/data } auth { username admin password your-strong-password }这里有几个细节要注意。listen里的0.0.0.0表示监听所有网卡如果你只想内网访问也可以写成具体IP。data_dir是所有数据的根目录建议单独放在一块数据盘上和系统盘分开后续重装系统不影响数据。然后启动服务rustfs --config /opt/rustfs/config.toml第一次启动时RustFS会在数据目录里初始化元数据。看到类似“server started on 0.0.0.0:9000”的日志就说明成功了。如果要开机自启写一个systemd服务单元比较干净[Unit] DescriptionRustFS Server Afternetwork.target [Service] ExecStart/usr/local/bin/rustfs --config /opt/rustfs/config.toml Restartalways Userroot [Install] WantedBymulti-user.target把文件放到/etc/systemd/system/rustfs.service然后执行systemctl enable --now rustfs这样即使机器重启也会自动拉起服务。相比Minio的启动脚本这个步骤少得多。3.2 Windows下安装原生exe文件RustFS对Windows的支持是我重点夸的一点。Minio虽然也有Windows版但很多人下载Windows版的时候同样会碰到下载慢、被安全软件拦截、需要手动改环境变量等一堆事。RustFS直接提供Windows的exe压缩包解压后双击就能跑。我朋友那台Windows Server 2022上我把rustfs-windows-amd64.zip解压到D:\rustfs用文本编辑器写好config.toml然后在命令行里执行cd D:\rustfs rustfs.exe --config config.tomlWindows下唯一要注意的是防火墙。如果其他设备访问不了9000端口记得在“Windows Defender防火墙”里放行这个端口。数据目录路径建议用D:\rustfs\data这种明确路径避免系统盘权限问题。如果不想用命令行前台运行可以用nssm把rustfs.exe注册成Windows服务这样就能实现开机自启、后台运行。Minio在Windows下的服务化配置要写PowerShell脚本RustFS配合nssm大概五分钟能搞定。3.3 群晖NAS上的Docker部署群晖用户最常见的Minio安装方式是通过Docker套件但“docker拉取minio失败”的问题在群晖上同样频发。RustFS的部署流程基本一致而且镜像更小拉取时间更短。在群晖的Docker套件里先到“注册表”搜索rustfs相关镜像下载后在“映像”里双击启动按需配置端口映射容器端口9000映射到宿主机9000容器数据目录/data映射到群晖的共享文件夹比如/volume1/docker/rustfs/data环境变量里可以设置初始账号密码或者直接通过挂载配置文件的方式传入。群晖用户最容易踩的坑是路径权限容器内运行的用户对挂载目录没有写权限导致初始化失败。解决办法是在群晖File Station里把对应共享文件夹的权限改成Everyone可写或者指定一个有权限的UID/GID这个操作对不熟Linux权限的新手来说是第一道坎。跑起来之后群晖的File Station里就能看到RustFS生成的数据文件下载机、下载工具、家庭相册备份脚本都可以直接通过S3协议往这个地址写数据。相比MinioRustFS在小内存设备上跑得更从容群晖DSM本身就要占不少内存别再让Minio来抢地盘了。3.4 初始化与访问验证服务启动后先用S3客户端工具验证功能是否正常。Linux下可以先装一个mc客户端mc alias set rustfs http://127.0.0.1:9000 admin your-strong-password mc mb rustfs/test-bucket mc cp ./test.txt rustfs/test-bucket/ mc ls rustfs/test-bucket/如果能正常创建桶、上传文件、列出对象说明服务端工作正常。这里建议验证一下“下载”链路mc cp rustfs/test-bucket/test.txt ./test-download.txt“minio下载文件”这个搜索词的出现频率很高说明有不少人在下载环节遇到困难其实多数时候不是服务端问题而是客户端工具没有走对S3的路径格式。RustFS默认兼容路径格式访问mc工具会自动处理这一步通常不会卡壳。也可以用浏览器直接访问Web管理界面输入账号密码后能看到存储桶列表、对象列表和基础的系统信息功能不花哨但日常查看够用了。4. 几个关键配置再讲透一点4.1 账户密码的正确改法RustFS的账号密码在配置文件的auth字段里这是我认为它比Minio体验好的核心原因之一。改密码的流程就是编辑配置文件、换上新密码、重启服务。不会有环境变量不生效的问题也不存在旧密码缓存的说法。如果你想增加多个用户可以查看当前版本的配置是否有users数组如果有可以为不同用户分配不同的访问权限。比如给备份脚本单独建一个账号只给指定存储桶的读写权限给下载工具一个只读账号降低误删风险。这种“配置文件即权限表”的做法很直观不像Minio那样要额外维护一套策略配置。改完密码后记得清一下客户端侧的缓存。用mc连接的话执行mc update不会清缓存正确做法是重新执行mc alias set或者干脆删掉旧的alias重新添加。否则新旧密码不一致会让客户端报AccessDenied不明所以的话会绕很多弯路。4.2 数据目录与纠删码策略数据目录是RustFS的根基所有对象都会落到这个目录。不要把数据目录放到系统盘也不要用临时目录否则一旦系统重装或者清理临时文件数据就全没了。我见过有人把数据目录配在/tmp下重启后数据全没了还跑来问怎么回事这是最典型的低级错误。关于数据冗余RustFS的纠删码配置比Minio友好不少。如果你有两块数据盘可以分别指定数据目录并开启EC副本策略如果只有一块盘系统也能跑只是没有冗余能力。我朋友那台机器最开始就是一块盘先用单盘模式把服务跑起来后来加了块新盘才把数据迁移过去并开启副本。这里要强调一个概念纠删码不是备份。EC解决的是“坏了多少块盘还能读出数据”的问题比如EC4配置下四块盘坏两块数据还在但如果整机宕机或者误删除对象EC是救不回来的。所以重要数据还是要靠备份策略RustFS提供的数据托管能力不能替代离线备份。4.3 参数调优与日常维护RustFS本身的默认参数在多数场景下都能跑得不错但如果你的场景很明确可以针对性调整大文件上传频繁比如经常传几个GB的镜像包适当调大单请求的分片大小能减少请求次数提升大文件的上传速度小文件很多比如几万张图片调大并发连接数上限能让批量上传更稳定同时把连接空闲超时调小避免占用过多连接资源内网千兆环境里跑满带宽的话确认服务端没有限制单连接速率配置里如果有max_bandwidth之类的字段建议先保持默认实测后再决定是否调整。日志是日常维护最重要的切入点。RustFS会把操作日志写到标准输出或者指定日志文件建议在生产环境把日志级别调到info既能看到所有关键操作又不会因为debug日志太多把磁盘撑爆。定期查看日志里的错误码比如NoSuchKey、AccessDenied、SignatureDoesNotMatch这些是排查问题的第一手线索。升级版本时先把服务停掉备份数据目录的元数据部分再用新版二进制覆盖旧版。RustFS本身没出过太多迁移事故但任何存储服务的升级都应该遵循“先备份再动手”的铁律。5. 实测中踩过的坑与排查思路5.1 典型问题速查表症状可能原因排查方法网页管理界面打不开服务监听地址配成了127.0.0.1改配置文件里的listen为0.0.0.0或具体IP客户端报AccessDenied账号密码错误、客户端缓存重新执行mc alias set确认密码一致客户端报SignatureDoesNotMatch系统时间偏差大校准系统时间检查NTP同步Docker部署后容器反复重启数据目录没正确挂载、权限不足检查映射路径和目录写权限上传大文件卡住分片设置过小或磁盘写入慢调大分片大小检查磁盘IO和剩余空间文件上传成功但下载失败元数据与实际文件不一致查看服务端日志确认元数据索引是否正常Windows下双击exe没反应系统缺少运行库或被杀软拦截命令行运行看输出检查Windows事件日志5.2 排查思路遇到问题按顺序排查三个层面网络连通性 - 账号权限 - 数据存储。先确认服务端口通不通用curl或者telnet测一下9000端口。如果端口不通问题在服务监听地址或者防火墙。端口通了但认证失败问题在账号密码或客户端配置。认证通过但读写失败问题在数据目录权限或者磁盘容量。绝大多数问题都能在这个流程里定位。有一个我踩得比较深的坑是S3签名校验里的时间偏差。有台旧笔记本的CMOS电池没电了系统时间慢了五分钟结果所有S3客户端工具都报SignatureDoesNotMatch。当时排查了半天最后才发现是时间问题。建议所有跑RustFS的机器都打开自动同步时间这个坑完全没必要踩。还有一个经验是先用mc的--debug参数跑一遍操作它会打印完整的HTTP请求和响应。S3聚合服务的问题90%能从响应头里的错误码找到线索。比如403就是权限问题404就是对象或桶不存在500才是服务端内部异常。分清责任方排查效率高很多。5.3 从Minio迁移到RustFS的一个小经验如果从Minio迁移数据最稳妥的方式是用mc mirror命令直接在两个服务之间同步mc mirror --overwrite rustfs-old/bucket rustfs-new/bucket这个命令会比对两端对象把缺失或变化的文件同步过去支持断点续传肉眼看着进度条走完即可。我朋友那台机器上有八百多个G的数据用了大概一个晚上同步完成。如果数据量更大建议分批同步先迁常用桶再迁冷数据。迁移完成后先别急着关Minio保留一两天观察期等确认所有客户端都切到RustFS之后再下线避免出现“数据还在旧服务器上”的尴尬局面。最后说点实在的用了一阵子RustFS我的最大体会是Minio不是不好而是它在个人场景里确实显得有点“重”。镜像体积大、环境变量绕、纠删码门槛高、内存占用不低这些问题对生产环境来说不算什么对普通用户和家庭NAS来说却是实打实的门槛。RustFS这种“收敛功能、降低门槛”的思路恰好补上了这个空缺。你不用再跟docker pull较劲不用再翻文档找环境变量怎么传配置文件一改服务就能按你想要的方式跑起来。如果你也在为Minio的这些问题头疼不妨在测试机上花半小时把RustFS跑起来亲身体验一下“原来S3存储也可以这么轻”。

相关新闻

Obsidian本地知识管理:云同步选型与AI工作流落地指南

Obsidian本地知识管理:云同步选型与AI工作流落地指南

工具换了又换,最后留在我工作流里的反而是Obsidian这种看起来最不像"大牌"的软件。没有自带云同步、没有富文本工具栏、打开默认界面还是暗黑色调的文件列表,但它用本地Markdown文件承载笔记、用双向链接把知识串成网,再靠一个庞大…

2026/10/11 18:05:08 阅读更多 →
gsd-core Skill Surface Consolidation 深度解析:31 个微技能折叠为分组命令的架构实践

gsd-core Skill Surface Consolidation 深度解析:31 个微技能折叠为分组命令的架构实践

【免费下载链接】gsd-core Git. Ship. Done - Core 项目地址: https://gitcode.com/gh_mirrors/ge/gsd-core 点击查看 免费下载 导读 Skill Surface Consolidation(技能面整合)是 gsd-core v1.40.0 引入的一项核心特性:为了削减…

2026/10/11 18:05:17 阅读更多 →
自然语言处理模型

自然语言处理模型

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

2026/10/11 13:14:57 阅读更多 →

最新新闻

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水 【免费下载链接】golive-skill Take your agent-built product live: hosting, database, domain, email, payments — on your own accounts. Open-source Agent Skill zero-dependency Node CLI: detect →…

2026/10/11 18:04:40 阅读更多 →
零售企业“细节标准体系“的观察样本:一位董事长的胖东来研学笔记

零售企业“细节标准体系“的观察样本:一位董事长的胖东来研学笔记

本文基于上海鼎学甄选教育科技有限公司董事长阿甘在稻百年胖东来研学(许昌)课后采访整理,提取其口述中的观察维度与参照系,供零售与连锁企业参考。1. 观察对象:非销售性投入的密度 受访人:阿甘,…

2026/10/11 18:04:40 阅读更多 →
ComfyUI+AnimateDiff+ControlNet:从零搭建可控动画工作流

ComfyUI+AnimateDiff+ControlNet:从零搭建可控动画工作流

简介:面向ComfyUI生态的动画生成实战资源包,围绕AnimateDiff与ControlNet的OpenposeDepth组合,展示从姿态与深度控制到逐帧动画输出的完整链路,适合熟悉Stable Diffusion基础、希望进阶学习可控动画生成的研究者与创作者&#xff…

2026/10/11 18:04:40 阅读更多 →
OpenCV图像处理到深度学习推理:滤波、特征匹配与轮廓分析实战指南

OpenCV图像处理到深度学习推理:滤波、特征匹配与轮廓分析实战指南

简介:面向计算机视觉开发者和入门学员,这份PDF系统梳理了OpenCV从基础图像处理到深度学习集成的完整知识路径。文档以core、imgproc、objdetect等核心模块为线索,具体介绍图像读取与保存、颜色空间转换、几何变换等基础操作;滤波部…

2026/10/11 18:04:40 阅读更多 →
洛雪音乐新手教程:New_lxmusic_source 六音音源 5 个关键步骤,轻松解锁海量曲库

洛雪音乐新手教程:New_lxmusic_source 六音音源 5 个关键步骤,轻松解锁海量曲库

洛雪音乐新手教程:New_lxmusic_source 六音音源 5 个关键步骤,轻松解锁海量曲库 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 洛雪音乐(LX Music&#xff09…

2026/10/11 18:04:40 阅读更多 →
VirtualBox与内核隔离冲突?VT-x不可用原因与解决方案全解析

VirtualBox与内核隔离冲突?VT-x不可用原因与解决方案全解析

1. 冲突现象:VirtualBox 在启用内核隔离的机器上一夜之间全军覆没 先说一个很多 Windows 用户都撞见过的场景:某天打开 VirtualBox,双击一个之前跑得好好的虚拟机,结果弹窗提示“This kernel requires an X86-64 CPU, but only de…

2026/10/11 18:03:39 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →