如何做好超大文件的上传,以及相关的思考联想

发布时间:2026/9/16 8:04:31

如何做好超大文件的上传,以及相关的思考联想 关键的一点在于把超大文件转换为小文件上传。因此技术难点就会放在如何保障小文件的合并、不丢失和性能。我们先解决第一个问题小文件的合并准确。小文件在前端采用统一的算法切分要确保每次切分出来的文件都一样。并小文件和大文件分别生成hash码用于后端合并后进行小文件和合并后的大文件进行检测。其次我们解决不丢失的问题。部分小文件上传后前端浏览器崩溃或网络崩溃等导致后续上传不全的情况时我们需要在后端存储好小文件保障已上传的小文件不丢失。像OBS本身可以做分片上传它默认小分片永久保留为了成本考虑可以妥协设置3天的过期清理的时间。最后我们解决性能问题。这里性能问题的重点在于保障每次不要重复上传小文件所以上传小文件时设置一个上传检查检验大文件是否有过上传小文件hash码是否已上传如果回答都为是则跳过该小文件上传。对这类问题采用基本原理是化大为小串行变并行。以前遇到一个相似的问题是从一个极大的广告池子里获取最贴近用户画像的5条广告。也用了相似的思路把极大池子按类型分几个小池子对大量中间广告而言它触达用户的概率其实没有变化。 假设广告总体是N用户拿到某一个广告的概率是5/N 分5个池子后用户拿到该广告的概率是5*1/5 * 1/N/5 5/N 。 可以看到概率是一致的。不过这里仍有一点业务问题对一些顶级广告而言这个概率其实还是变相降低了本来必定出现的广告现在有了一定概率不出现不出现的概率是 4/5 * 4/5 * 4/5 *4/5 * 4/5 1024/3125 这个概率接近1/3所以对公司来说它可能造成收益下降。因为顶级广告能赚更多钱为了规避又得建立一个动态的顶级广告池确保每次一定要先去这个池子里进行一次匹配。这样做了之后是否能收益最高呢也不一定因为是否是顶级广告是一个规则去判定的它不一定精准。这样看回到一个大池子又很合理但大池子又会导致性能问题而丢失一部分曝光流量。仔细思考后会发现大到一定程度用分池加分级更有效反之在统一池子里更有效。接着上面的思考我们发现分级分池仍有一些缺陷进一步思考我们发现如果设置一个多路召回每次都从小池子里召回5条广告它就会满足在同一个大池子获取顶级广告的优势同时因为每次从小池子中检索它又避免了大数据导致的计算瓶颈这个思想接近大数据的map-reduce的处理思维。这个原理是利用了多级目录检索首先分小池子再在小池子冗余获取小部分数据最后再从汇总数据中排序获取最好的5条广告。这个思维方式并不罕见很多数据库都支持分片、分库都是化大为小的思维。只是在业务中数据并不平权导致这种分片、分库不一定是最优的策略。因此也许还可以设计出一种特别的数据库它支持分片同时支持多路冗余召回。它不满足传统需要的分页查询它也不是为了分页查询而设计而是为了一种特有的场景用户每次只需要最符合要求的少数数据但不希望耗时过长又不希望漏掉最有价值的某些数据。进一步联想可以发现它特别适合做RAG数据库。当前的向量检索数据库Mivuls 正是拥有这一特性的数据库它支持多路召回同时每一路都获取TOP k条数据。
延伸阅读

更多相关文章

2026/9/16 8:04:31

Java智慧园林管理系统开发与SSM框架应用实践

1. 项目概述:智慧园林管理系统的核心价值第一次接触智慧园林管理系统这个概念时,我正坐在导师办公室里翻看往届学生的毕业设计文档。作为计算机专业的学生,选择毕业设计题目总是让人纠结——既想体现技术含量,又希望有实际应用场景…

2026/9/16 8:04:31

AI集群Leaf-Spine容量计算实战:端口、收敛比、N-1与扩容

AI集群Leaf-Spine设计的输入不是“需要多少台交换机”,而是一组业务与端点数据:节点数量、每节点GPU和训练网卡数量、单端口速率、作业最大规模、跨Leaf通信比例、允许的超售水平以及故障时的性能目标。先固定输入,端口预算才可验证。步骤一&…

2026/9/16 8:04:31

P1744 采购特价商品【洛谷算法习题】

P1744 采购特价商品 网页链接 P1744 采购特价商品 题目背景 《爱与愁的故事第三弹shopping》第一章。 题目描述 中山路店山店海,成了购物狂爱与愁大神的“不归之路”。中山路上有 nnn(n≤100n \leq 100n≤100)家店,每家店的…

2026/9/16 8:49:37

React Native与鸿蒙跨平台卡片组件开发实践

1. React Native与鸿蒙跨平台开发概述在移动应用开发领域,跨平台技术已经成为提升开发效率的关键解决方案。React Native作为Facebook推出的跨平台框架,允许开发者使用JavaScript和React构建原生应用体验。而鸿蒙系统(HarmonyOS)作…

2026/9/16 8:49:37

2026年Top5通勤阅读APP评测与效率提升指南

1. 通勤阅读场景的痛点与需求解析每天早晚高峰的地铁和公交上,总能看到大量上班族捧着手机消磨时间。作为一个坚持了七年通勤阅读的实践者,我深刻理解这个特殊场景下的三大核心痛点:碎片化时间难以集中注意力、拥挤环境导致操作不便、网络不稳…

2026/9/16 8:49:37

Flutter与HarmonyOS开发智能汇率转换应用实践

1. 项目概述:SwiftRate汇率转换应用的核心定位SwiftRate是一款基于Flutter框架开发、适配HarmonyOS 6.0系统的智能汇率转换工具,其核心创新点在于"常用货币对"的智能构建机制。不同于传统汇率应用需要用户手动选择货币对,SwiftRate…

2026/9/16 8:49:37

Agentic视频生产系统:LangGraph+RAG+FastAPI实战

1. OpenMontage不是视频剪辑软件,而是一个被严重误读的AI智能体开发框架最近在多个技术社区和开源平台看到“OpenMontage”这个词频繁出现,尤其集中在“openmontage下载后如何使用”“OpenMontage vs LangGraph”“OpenMontage agent教程”这类搜索词里。…

2026/9/16 8:49:37

ChatGPT核心技术解析:从Transformer到RLHF

1. ChatGPT核心原理概述ChatGPT作为当前最先进的对话AI系统,其核心架构建立在GPT(Generative Pre-trained Transformer)系列模型基础上。我拆解过多个版本的实现细节,发现其本质是一个基于海量文本训练的巨型自回归语言模型。简单…

2026/9/16 8:44:37

轻量Agent框架pentagi:从规划到工具调用的完整实践

你们有没有遇到过这种尴尬:大模型的 API 单独调起来很爽,可真想让它替你干活,比如定时抓取信息、整理成表格、再自动归档到本地,就发现要写一堆胶水代码。我琢磨这事挺久,后来趁几个周末,把平时常用的 Agen…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码