上传——断点续传之理论篇
一、流与缓存区
1.1 如何理解流?
流是一种连接,一种管道,它建立了与物理文件或网络相关联的机制,方便读写文件或者网络。当然还有其它类型的流。
1.2 流的操作
读取:将数据从流传输到缓存区,缓冲区就是内存中的一块区域,代码中常用byte数组。
写入:将数据从数据源传输到流中。
流用完后需要释放资源,因为文件或者网络连接都属于非托管资源,需要手动释放。
二、客户端和服务器的通信
http通信,通过接口请求、响应。
三、何为断点续传
从哪跌倒,就从哪爬起,顾名思义,从上次断开的位置接着传输。
四、为什么需要断点续传
优点:针对大文件且网络不太稳定的情况,断点续传能节省带宽。
缺点:增加额外的通信
五、如何进行断点续传
断点续传的解决方案,如下图所示:

上图中,主要描述了客户端和服务器通信的情况
客户端:
1、需要知道上次断点位置
2、计算当前开始传输的位置
3、传输文件
如何传输文件,比如分片还是不分片,是多线程还是不用多线程,这些都需要设计与考虑。如果用了多线程,就会增加问题的复杂度。当然用好了,好处也很多。
服务端:
创建文件的服务
提供断点位置的服务
如果是分片传输,还要提供合并分片的服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!