面向企业级 DevOps 场景下的制品管理需求,华为云制品仓库需要支持大规模文件(如镜像、构建产物、依赖包等)的高效上传与管理。传统单文件上传在大文件和高并发场景下存在上传耗时长、失败率高、不可断点续传等问题,同时在多文件批量上传时也存在任务调度混乱、资源占用不可控等痛点。为解决上述问题,设计并实现批量上传与分片上传能力,提升上传稳定性、吞吐性能及用户体验,满足企业级持续集成与交付场景需求。
点击空白处退出提示
语言技术
Angular、TypeScript系统类型
Web行业分类
云计算
面向企业级 DevOps 场景下的制品管理需求,华为云制品仓库需要支持大规模文件(如镜像、构建产物、依赖包等)的高效上传与管理。传统单文件上传在大文件和高并发场景下存在上传耗时长、失败率高、不可断点续传等问题,同时在多文件批量上传时也存在任务调度混乱、资源占用不可控等痛点。为解决上述问题,设计并实现批量上传与分片上传能力,提升上传稳定性、吞吐性能及用户体验,满足企业级持续集成与交付场景需求。
项目实现了制品仓库前端侧的批量上传与大文件分片上传能力,支持多文件并发上传、失败重试及上传进度实时展示等核心功能。系统将大文件切分为多个分片,通过并发上传策略显著提升上传效率,并在上传过程中维护分片状态,实现断点续传能力,避免因网络波动导致整体失败。同时提供统一任务调度机制,对批量上传任务进行队列化管理,提升用户对上传过程的可控性。此外,通过细粒度进度计算与状态同步,实现文件级与整体任务级双层进度展示,增强交互体验。
本人负责制品仓库前端上传模块的核心设计与实现,包括批量上传与分片上传整体架构设计。基于 angular + TypeScript 构建上传任务模型,设计统一任务调度器,对多文件上传进行并发控制(限制并发数,避免浏览器资源耗尽)。在分片上传实现中,将大文件切分为固定大小分片,通过 Promise 池管理分片上传并发,结合后端接口实现分片校验与合并。为支持断点续传,基于文件 hash(或分片标识)记录已上传分片状态,实现上传中断后的恢复能力。同时设计失败重试机制与状态机管理(pending / uploading / success / error),保证上传流程的健壮性。在性能优化方面,通过分片粒度控制、并发调度优化及请求复用,显著降低上传耗时并提升稳定性。



评论