Java后端分块上传大文件:从原理到芯片制造场景实战
芯片制造行业的网页应用文件动辄上百GB是常态——晶圆缺陷检测的原始图像、光刻机的工艺日志、仿真验证的生成数据随便一个都是普通办公软件无法处理的存在。之前有个制造现场的同事跟我吐槽说浏览器上传一个2GB的检测报告等了十分钟最后超时失败整个产线都在等这份数据。这个问题本质上不是网络带宽不够而是传统的单文件上传方式根本没有为超大文件做过设计。JAVA后端配合前端分片、断点续传才能让网页应用真正扛得住芯片制造场景下的数据吞吐。这篇文章就围绕“JAVA如何支持分块上传大文件”展开讲清楚分块上传的完整链路前端怎么切分、后端怎么接收校验、分片怎么合并、失败怎么续传。适合正在做工业互联网平台、半导体产线数据系统的朋友参考也适合那些刚接触大文件传输、想知道Web Worker和Spring Boot怎么配合的开发者。1. 芯片制造场景下的大文件上传需求解析1.1 为什么芯片行业网页应用需要大文件上传芯片制造流程里数据文件的大小和重要性完全不亚于实体晶圆。一个典型的12英寸晶圆厂单次光学检测会产生几十GB的缺陷图像这些图像要上传到分析服务器做缺陷分类和良率追溯芯片设计阶段的GDSII版图文件单层版图可能就有数十GB流片前需要上传到仿真平台进行物理验证更不用说设备状态监控的SECS/GEM日志连续采集一个月轻松超过100GB。这些文件如果直接用传统的multipart方式一次性上传会遇到几个现实问题。第一HTTP连接在长时间传输中极不稳定任何一个网络抖动都可能导致整个重新上传产线工程师的耐心会被消耗殆尽第二服务器端一次性接收大文件内存和磁盘I/O都会面临巨大压力Spring Boot默认的请求体大小限制、Tomcat的连接超时都会成为隐形杀手第三没有断点续传能力一旦中断就要从头再来在跨机房、跨地域的生产网络环境里这种体验根本无法接受。所以芯片制造行业的网页应用必须走分块上传的路线。原理不复杂把一个大文件切成很多小块每次只上传一小块后端收到所有分块后再合并成完整文件。每一块的大小通常控制在几MB到几十MB这样即使某一块失败也只需要重传那一块代价极小。1.2 分块上传的核心思路与边界条件分块上传的整体思路可以概括为三个步骤前端切片、逐块上传、服务端合并。前端通过HTML5的File API读取文件用file.slice(start, end)把大文件按固定大小切成多个Blob分块每个分块会附带文件的唯一标识、分块序号、总块数等信息以独立的HTTP请求发送到后端后端接收完成后在某个合适的时机把所有分块按序号拼接还原成原始文件。但“切了传”只是表面真正的难点在于边界条件的处理。芯片制造环境对数据完整性要求极高一份缺陷检测图如果出现几个字节的损坏可能导致整个批次的晶圆被判错。所以我们必须考虑分块在传输过程中是否损坏分块顺序是否一致所有分块是否都完整到达合并时如何保证文件分界处不出现问题这些问题单靠“切分—上传—合并”三个动作是解决不了的还需要配套的校验机制和任务管理机制。另外一个大边界是“超大文件”。100GB级别的文件如果按2MB分块会产生超过5万个分块。一方面前端不能简单地用单个循环串行上传5万次请求会慢到无法接受另一方面后端也不能把每个分块的文件元信息都放到内存里必须配合数据库或分布式缓存来管理任务状态。这些边界条件决定了我们不能只写个简单的PostMapping接收文件就完事而是需要一套完整的设计。2. 技术选型前端Worker、后端Spring Boot、对象存储2.1 为什么前端要用Web Worker处理分片很多人在实现分块上传时习惯在页面主线程里用for循环切片、再用axios逐个发请求。在小文件场景下这没什么问题但文件一旦到了GB级别主线程会被一连串的同步切片操作和事件循环阻塞。关键问题是file.slice()虽然是异步的但切片本身需要访问文件数据在浏览器中抛给主线程会造成页面卡顿用户会看到“未响应”的提示。Web Worker的意义在于把切片、计算MD5、以及后续的分块状态管理都放到独立线程中执行。对于100GB文件切片过程中需要频繁读取文件内容、生成校验值、维护分块队列这些操作如果放在主线程浏览器几乎没有余力处理用户的点击和拖拽操作。用Worker之后主线程只负责接收Worker返回的状态消息渲染进度条用户交互流畅不受影响。需要说明的是Worker并不能直接上传数据它仍然需要通过主线程发起网络请求。但我们可以把“生成分块元信息”和“调度上传任务”的逻辑全部收进Worker主线程只担任一个轻量级的通信桥。很多前端上传库比如webuploader、simple-uploader.js内部都支持Worker模式但为了贴合芯片行业的定制需求建议自己封装一套基于Worker的上传调度器。2.2 后端框架与存储方案选择后端技术栈最稳的搭配还是Spring Boot。原因很简单团队对JAVA生态的掌握最熟练Spring Boot对上传请求的处理、事务管理、异常拦截都有成熟方案而且能天然地与芯片行业已有的制造执行系统MES、设备数据采集系统对接。当然如果你用的是Quarkus或Vert.x也完全可行但Spring Boot在文档、社区、招人难度上更有优势。存储方案需要认真选。芯片行业数据量大、可靠性要求高不能指望把文件存在服务器的临时目录。企业级场景我推荐MinIO它本身就是为对象存储设计的兼容S3协议单机启动简单集群扩展容易。实际项目中我们用MinIO存储原始分块和合并后的最终文件配合nginx做负载均衡单桶容量按PB级别规划。如果公司已有Hadoop集群也可以用HDFS但对象存储在并发上传环境下的扩展性和运维便利性要更好。有一点容易被忽略分块存储与合并后的文件最好分开桶或目录管理。我习惯用uploads/tmp/chunks来存临时分块用uploads/files存最终文件这样便于清理残留分块也能避免合并过程中误操作影响到正式数据。另外MinIO的桶策略、访问凭证、SSL证书配置都需要提前规划好特别是跨厂区部署时内网与公网的访问路径要保持一致。2.3 分块大小与并发数怎么定这两个参数直接决定上传性能但很多人都是拍脑袋定的。先说分块大小。分块太小请求数量剧增后端压力大HTTP头的开销也会拖慢速度分块太大单次传输时间过长失败重传的成本也随之上升。我们做过实测在千兆内网环境下4MB到8MB的分块表现比较均衡在百兆网络或跨地域专线环境下2MB到4MB更稳定。芯片行业很多生产数据上传发生在内网所以我默认推荐5MB平衡性好也兼顾了浏览器切片的对齐需求。并发数同样需要权衡。并不是并发越高越好因为浏览器对同一域名的并发连接数有上限HTTP/1.1默认6个超过后请求反而会排队。HTTP/2虽然放宽了这个限制但服务端的处理能力、带宽上限依然存在。我们的经验是3到5个并发上传线程既能让进度条流畅推进又不至于把服务器打得喘不过气。如果是在弱网环境下并发数可以适当降到2配合失败自动重试体验反而更好。这里还要考虑一个业务场景芯片制造系统里往往同时有多条产线、多个操作员在上传文件我们不能让一个用户的并发请求把带宽全部吃掉。所以除了前端控制并发后端也要加上令牌桶限流策略对每个用户或每个任务限制上传速率保证其他关键业务比如实时数据采集不受影响。3. JAVA后端分块上传接口设计3.1 接口拆分初始化、上传分片、合并一个完整的JAVA分块上传接口至少要有三个端点初始化上传、上传分片、合并文件。初始化接口接收文件名、文件大小、分块大小等信息生成一个唯一的上传任务ID并在数据库或Redis中记录任务状态。上传分片接口接收分块文件、任务ID、分块序号、MD5值后端落盘后更新分块记录。合并接口在最后一块上传完成后触发后端检查所有分块是否齐全然后按顺序合并。为什么不能省略初始化接口因为我们需要提前知道文件的总大小和分块数才能判断“所有分片是否到齐”。如果单纯靠前端每次带上“这是第几块、总共多少块”也能做但初始化接口可以做更多事比如检查存储空间是否足够、创建临时目录、记录上传时间甚至对需要数据加密的场景做密钥协商。我更推荐显式初始化把上传任务的上下文管理放在服务端而不是完全信任前端传参。3.2 基于Redis或数据库的元数据管理与校验分块上传过程中服务端需要持续记录每个分块的接收状态。对于小批量、低频次的上传用一个MySQL表upload_chunk就够了字段包括任务ID、分块序号、文件路径、大小、上传状态。但对于芯片行业动辄几万块的场景频繁更新数据库会成为瓶颈Redis才是更合适的选择。Redis可以用Hash结构key是任务IDfield是分块序号value是分块保存路径判断某个分块是否上传成功就执行一次HGET接近O(1)操作。校验是分块上传的重中之重。接收每个分块时我们要做两层校验第一层是大小校验接收到的字节数必须与前端声明的分块大小一致最后一块可能不满允许例外第二层是MD5校验前端在分块上传时携带该分块的MD5服务端计算落盘后的MD5进行比对不一致则直接丢弃并返回错误通知前端重传该分块。很多人只做前一层结果合并后文件损坏排查半天才发现是某个分块在传输中出了错。这里有一个性能细节计算100GB文件的MD5会消耗大量CPU如果在分块接收时同步计算会导致接口响应变慢。我的做法是在上传分片接口里只校验大小和分块是否存在真正的MD5校验放到异步任务里做分块全部进入合并阶段前再进行一次高强度校验。如果校验不通过就标记那个分块为失败状态下次前端“续传”时自动重传。3.3 分片合并与断点续传实现合并操作是分块上传的收尾环节逻辑上很简单按分块序号从小到大把每个分块用FileOutputStream或Files.copy写入同一个目标文件中。但注意几个坑。第一不要把分块文件读入内存再写要用流式传输4MB的分块虽然不大但几万块加起来会撑爆内存第二合并过程中如果某块缺失必须立即停止并返回错误不能跳过第三合并完成后要删除所有临时分块避免占用存储空间。断点续传的实现其实建立在分块级别的记录上。前端上传前先调用查询接口向服务端询问“哪些分块已经存在”然后只上传缺失的部分。这样即使上传到一半断网重新打开页面后也能从上次中断的位置继续而不是重新上传整个文件。JAVA后端提供查询接口时直接返回Redis中已存在的分块序号列表前端据此滤掉已成功上传的分块。在实际项目中我发现很多团队把断点续传做成了“前端把所有分块的MD5先算出来再逐个比对服务端的MD5”这种方式虽然精确但对CPU和时间消耗极大。如果文件实在太大可以退一步——只比对分块是否存在不校验内容。要实现快速校验可以在初始化时让前端传一个分块级MD5列表后端在合并前随机抽查若干分块的内容做一致性校验兼顾速度与可靠性。4. 前端分块与并发控制实战4.1 使用File.slice切分文件前端切分文件的API很成熟核心就是File.prototype.slice()。假设我们设定分块大小为5MB那么对于一个100GB的文件需要循环切出约20000个Blob。切片本身很快但要注意Blob对象会保留对原始文件的引用如果同时保存所有分块对象内存会被占满。正确做法是不要一次性把所有分块都slice出来存到数组里而是每次slice一块、上传一块或者仅保存切片参数start和end等真正需要上传时再slice。所以我会在Worker里维护一个“待上传分块队列”队列元素不是Blob本身而是{chunkIndex, start, end}这样的描述对象。上传时再通过file.slice(start, end)临时生成Blob上传之后把它丢弃。这样整个流程的内存占用只与当前正在传输的那几块有关不会因为文件大而爆掉。4.2 Web Worker实现并发上传在Worker里做并发核心是维护一个“当前正在运行的上传任务数”。我们可以定义MAX_CONCURRENT 3每次从队列中取出待上传分块放到后台进行上传。由于Worker本身没有XMLHttpRequest通常的做法是通过postMessage把上传请求交给主线程由主线程的fetch或axios发送请求再把结果postMessage回Worker。更简洁的方式是在Worker里直接使用fetch——现代浏览器支持在Worker中使用fetch发起网络请求。这样Worker内部就能完全控制上传流程主线程只负责接收进度消息。伪代码如下// worker.js self.onmessage async (e) { const { file, chunkSize, uploadUrl, taskId } e.data; const totalChunks Math.ceil(file.size / chunkSize); let offset 0; async function uploadChunk(index) { const start index * chunkSize; const end Math.min(start chunkSize, file.size); const blob file.slice(start, end); const formData new FormData(); formData.append(chunk, blob); formData.append(taskId, taskId); formData.append(chunkIndex, index); formData.append(totalChunks, totalChunks); const response await fetch(uploadUrl, { method: POST, body: formData }); if (!response.ok) throw new Error(Chunk ${index} upload failed); self.postMessage({ type: progress, loaded: end, total: file.size, index }); } // 使用简单的并发控制 let active 0; let current 0; function next() { while (active 3 current totalChunks) { const index current; active; uploadChunk(index).catch(() { // 重试逻辑这里简化为加入队列尾部 }).finally(() { active--; next(); }); } } next(); };实际生产代码要复杂得多比如失败重试、分块并入队、进度汇总等。但核心就是这种“生产者—消费者”模式通过维护计数槽来限制并发。4.3 进度计算与失败重试进度计算不能简单用“已上传分块数 / 总块数”因为每个分块的大小不完全相同最后一块通常较小。最准确的进度是“已上传字节数 / 文件总字节数”。前端可以在每个分块上传成功后把end - start累加到一个变量中然后用这个累计值除以file.size得到百分比。如果开启并发要注意多个分块同时完成时的累加冲突可以在Worker中用一个互斥量本质上JavaScript单线程不会真正冲突但要注意消息队列顺序。失败重试的关键是区分“可重试错误”和“不可重试错误”。网络超时、服务器503、连接被重置都属于可重试错误我们通过增加重试次数比如3次和退避策略来应对而403、404、参数校验失败这类错误重试一千次也没用应该直接终止任务并通知用户。实际项目中我会在Worker里给每个分块记录一个retryCount连续失败超过3次就放弃该分块同时向主线程发送错误码和上下文方便排查。另外一个非常实用的技巧在初始化上传时前端就向服务端查询已上传的块列表跳过已经成功上传且校验通过的分块。这样就算刷新页面也能秒级恢复。这个查询接口也配合Redis返回块序号速度非常快对前端而言没有任何负担。5. 常见问题与排查经验5.1 分片丢失或乱序分块上传最常见的故障是前端发了5万块后端最终只收到了49999块合并时报“缺少分块”。这种问题首先要去查网络层面是否存在超时中断、代理服务器对请求体大小有限制、负载均衡器丢弃了等。我们踩过最隐蔽的坑是nginx的client_max_body_size默认只有1MB分块设为5MB时所有超过1MB的请求都被nginx直接返回413。这个问题在测试环境不容易发现因为小文件上传不会触发只有大文件分块才会暴露。另一个原因是前端并发控制逻辑写错了某些分块被并发时序覆盖。比如断点续传时服务端返回的“已存在分块列表”只包含了部分块前端在并发调度时没有对已存在的分块做过滤导致重复上传或漏传。建议在前端代码里加一个alreadyUploaded的Set每次从队列里取出分块时先检查该Set避免重复上传。5.2 存储空间与性能分块上传会带来双倍存储开销临时分块占一份合并后文件占一份。对于TB级的日上传量如果不及时清理临时分块存储会快速耗尽。我们的方案是合并成功后立即删除该任务的所有临时分块同时写一个定时任务扫描超过24小时未完成且分块未更新的任务强制清理。另外MinIO的桶版本控制和生命周期管理可以配合使用比如自动清理7天前的临时目录。性能上最需要注意的是合并阶段的磁盘I/O。几万个分块顺序写入如果是机械硬盘随机读性能会非常差建议合并时采用批量顺序读取或者直接使用SSD存储临时分块。JAVA合并代码中用BufferedOutputStream和BufferedInputStream缓冲设为1MB以上能显著减少磁盘寻道次数。实测中100GB文件在SSD上合并大约需要几分钟在机械盘上可能翻倍。5.3 前后端联调踩坑联调阶段最容易出问题的不是功能逻辑而是参数传递。前端把分块文件放在FormData的file字段里后端RequestParam(file) MultipartFile file是可以接收的但如果前端用application/octet-stream发送原始二进制流后端就要用InputStream接收。两种方式各有利弊MultipartFile自带解决文件大小限制和临时文件管理但会多一层解析损耗流式接收对大文件更友好但需要自己处理分块边界。我们实际中选用了MultipartFile因为Spring Boot配套成熟分块本身只有几MB解析开销可以忽略。另一个坑是文件名编码。芯片制造行业经常有包含中文、空格、特殊符号的文件名上传时如果不做URL编码后端解析会乱码。建议统一在初始化接口传输文件名同时后端保存时用UUID重命名文件原名存入数据库字段。这样既避免文件系统命名冲突也解决编码问题。分块上传过程中分块文件本身完全用任务ID和序号命名不与原始文件名关联这也是一个好习惯。5.4 防重复上传与幂等性大文件上传中用户可能会因为网络卡顿多次点击“上传”按钮触发多个初始化任务。处理方案有两个前端在初始化时带上客户端生成的唯一fileId比如MD5文件特征值后端看到相同fileId且任务未完成时直接返回已存在的任务ID不重复创建或者后端在分块写入时设计一个唯一索引(taskId, chunkIndex)重复提交分块会被数据库拦截。幂等性做好了即使前端脚本逻辑有bug也不会把临时目录堆成山。我在实际项目里还在分块上传接口加了一个简单的“去重判断”如果Redis中某个分块序号已经存在且文件大小一致则直接返回成功不再重复写入。这对于断点续传后前端并发重复上传的场景特别有效能够节省不必要的磁盘I/O。5.5 大文件校验与安全考量芯片制造数据紧要程度高上传后的文件如果被篡改影响会非常大。虽然分块MD5的校验可以保证传输无误但无法保证文件内容在源端就是正确的。对于要求严格的场景建议在合并完成后计算整个文件的SHA-256或CRC64与前端在初始化时提供的值比对。注意这一步必须异步执行避免合并接口长时间阻塞。安全方面还要防范恶意上传虽然分块上传是面向内部系统的但接口暴露在公网后可能被人利用做存储型攻击。后端的建议是限制每个任务的分块大小和总数比如单个分块不超过50MB总块数不超过10万块校验上传的文件类型对用户身份和权限做控制不能任何人都能创建任务。这个行业里数据即资产安全底线不容妥协。6. 分块上传的扩展与优化方向分块上传方案落地后还可以继续演进。最值得做的是“服务端计算分块级校验值”。目前我们主要靠前端计算MD5但前端计算5万块的MD5也需要时间。服务端在接收分块时可以异步计算每个分块的SHA-256保存到数据库等查询已完成分块时把这些校验值返回给前端前端与本地计算出的值比对后再决定跳过还是重传。这样多了一层保障且不增加前端负担。另外推荐把“上传进度持久化”做到Redis里。用户上传到50%时如果关闭浏览器下一次重新打开文件时前端可以快速从Redis拿到“已完成分块列表”恢复上传。这个体验远比重新上传舒服尤其是当文件大小为几十GB时。Redis中任务元数据可以设置过期时间比如24小时因为基本上不会有人拖延到第二天继续传。对芯片制造行业来说还可以把上传任务与业务流程绑定。比如创建上传任务时后端直接生成一条工艺文件登记记录上传状态作为流程节点分块全部合并成功后触发后续的解析、入库、质检流程。这样“上传”不再是孤立的操作而是生产线数据链路的一部分。我在项目中就是通过Spring的事件机制在合并成功后发布FileUploadCompleteEvent监听器负责启动后续的文件解析任务整体代码耦合度很低。多说一句JAVA生态下这些功能都有成熟组件支持不要自己重复造轮子。分块上传的框架可以参考fastdfs-client、minio-java的封装校验和任务管理尽量用Spring已有的能力。但核心的分块状态机逻辑一定要团队自己掌握因为它直接决定了上传的鲁棒性也是后续扩展的根基。7. 实操心得与建议分块上传做起来容易做好却很难。我在芯片制造行业的项目里前前后后调了三个版本才在稳定性、速度和资源占用之间找到平衡点。第一个版本串行上传5万块全部传完需要几个小时被产线用户骂得不行第二个版本改成高并发结果服务器CPU打满其他系统跟着卡顿第三个版本才收敛到“3并发动态分块Redis状态管理”整体体验才稳定下来。我个人建议如果你想在自己的项目里落地分块上传不要一上来就追求代码完美先把最简单的“切分上传合并”跑通然后再逐步加入断点续传、并发控制、校验、清理机制。每一步都做小规模验证尤其是分块大小和并发数一定要在真实网络环境里测而不是拿本地回环地址自嗨。芯片制造行业的网络复杂防火墙、负载均衡、反向代理都可能成为瓶颈不实际测一遍永远不知道问题在哪。最后分享一个小技巧在上传接口的返回体里除了成功标志一定要带上当前服务端接收到的分块字节数。前端拿到这个值以后可以和本地已发送的累计值做交叉验证如果发现差异就打印日志这样可以早早就把“丢块”这类隐蔽问题暴露出来。不要问我怎么知道的——线上环境排查了一天的教训换来的。

相关新闻

P2PNet人群计数模型C#落地:ONNX推理与工程避坑全流程

P2PNet人群计数模型C#落地:ONNX推理与工程避坑全流程

简介:这份资源是一套基于C#与ONNX Runtime的P2PNet人群检测与计数项目源码,面向希望将深度学习模型集成到Windows桌面应用中的C#开发者。项目实现了从图像输入、模型推理到结果可视化的完整流程,可应用于安全监控、公共活动管理等场景。压缩包…

2026/10/1 17:49:21 阅读更多 →
LLM长周期任务工程化:状态管理、异步编排与可观测性实践

LLM长周期任务工程化:状态管理、异步编排与可观测性实践

1. 项目概述:当大模型开始“跑马拉松”,我们该怎么陪它跑完全程?“Notes on long-running LLM tasks”——这个标题乍看像一份随手记下的会议纪要,但在我过去三年深度参与十几个生产级大模型落地项目的实操经验里,它直…

2026/10/1 17:49:21 阅读更多 →
ByteTrack多目标跟踪实战:从VOC数据集训练到摄像头实时检测

ByteTrack多目标跟踪实战:从VOC数据集训练到摄像头实时检测

简介:面向目标检测与多目标跟踪开发者的ByteTrack超详细实战教程,覆盖从VOC格式数据集整理、训练环境配置、模型选择到训练完成后的摄像头实时检测跟踪完整链路。教程针对Pascal VOC目录结构、图像与标注文件配对规则、学习率与批处理等关键参数调整均有…

2026/10/1 17:49:21 阅读更多 →

最新新闻

图幅接合图表实战指南:标准分幅规则与GIS应用全解析

图幅接合图表实战指南:标准分幅规则与GIS应用全解析

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

2026/10/1 20:04:31 阅读更多 →
Linux ipcalc 命令详解:IP 地址计算器的网络规划实战指南

Linux ipcalc 命令详解:IP 地址计算器的网络规划实战指南

文档教程 【免费下载链接】linux-command Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux 项目地址: https://gitcode.com/GitHub_Trending/linux/linux-command 点击查看 免费下载 本篇指南以 linux-command 开…

2026/10/1 20:04:31 阅读更多 →
从零安装 ClaudeCode 并接入 DeepSeek:用 CC Switch 管理多模型配置

从零安装 ClaudeCode 并接入 DeepSeek:用 CC Switch 管理多模型配置

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

2026/10/1 20:04:31 阅读更多 →
WorkBuddy 与 OpenClaw 深度对比:AI 桌面智能体的两条进化路径与 TaoToken 统一接入实践

WorkBuddy 与 OpenClaw 深度对比:AI 桌面智能体的两条进化路径与 TaoToken 统一接入实践

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

2026/10/1 20:04:31 阅读更多 →
有人花 3 天做了个开源工具,一句话生成各种场景的 HTML:TaoToken 统一 Key 接入 Agent CLI 实测

有人花 3 天做了个开源工具,一句话生成各种场景的 HTML:TaoToken 统一 Key 接入 Agent CLI 实测

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

2026/10/1 20:04:31 阅读更多 →
高德API地点搜索与经纬度获取:坐标系转换、配额限流与缓存实战

高德API地点搜索与经纬度获取:坐标系转换、配额限流与缓存实战

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

2026/10/1 20:03:30 阅读更多 →

日新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →