断点续传中服务器埋下的坑

2023-11-30 03:58

本文主要是介绍断点续传中服务器埋下的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在一个项目中需要运用到文件下载的断点续传功能。我使用的是MKNetwork + SIDownLoader 实现。项目之初,一切正常,并成功发布一个beta版本。待到测试正式版本的时候,测试人员拿着ipad mini2来了:“你的断点续传下载的文件不能打开”。于是我续传了一个文件,还真是不能打开,查看下载的文件大小,和服务器上一样。我的第一反应是,有可能是断点续传功能代码写得不够强壮,导致在64位处理器下不能正常下载(之前测试都是用32位处理器的机器,后来才开始使用64位机器测试,在64位处理器下也确实出现了很多小问题,所以感觉应该是它)。为了验证,我换上32位的机器,再来一次,问题依旧。再一想,有可能是系统差异导致,之前IOS7.1还没发布,是用IOS7.0测试的,现在是在IOS7.1下测试。于是换上IOS7.0测试,该有的问题还是出现了。最有可能导致出现bug的原因都排除了,接下来我就想会不会这个bug之前就一直存在,只是运气好一直没出现?如果真是这样的话,就是断点续传的代码有问题,于是我仔细查看SIDownLoader类和自己的二次封装类,并在debug的时候仔细查看续传的range是否有错误,都没问题。就这样,一天的上班时间结束了。由于当前项目吃紧,导致我没更多的时间研究它,于是只能先取消断点续传功能,赶完其它功能并测试通过后发布了一个正式版。缺少了断点续传的正式版就这样发布了,接下来又要开始另一个项目,时间也是那么的紧。但断点续传的bug从出现到现在就一直在我脑中环绕,我决定再抽出点时间研究它:我下载了AFNetwork,做了一个断点续传的demo测试,bug依旧。两个网络请求类都有问题?这不得不让我怀疑是不是服务器出问题了。于是我把文件放到dropbox中,测试从dropbox中断点续传到本地,打开,没问题了。多次测试,都没问题。于是我找来后台人员告诉其续传这一块在服务器出现了bug,后台人员仔细测试后发现了问题所在:因为之前服务器为了缓解服务器压力,所以做了负载均衡,而多台服务器的文件都不同,导致断点续传中在这台服务器下载了一半,然后又在另一台服务器下载了一半,以至于下载下来的文件虽然大小相同,但是却不能打开。

这篇关于断点续传中服务器埋下的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435537

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Python WSGI HTTP服务器Gunicorn使用详解

《PythonWSGIHTTP服务器Gunicorn使用详解》Gunicorn是Python的WSGI服务器,用于部署Flask/Django应用,性能高且稳定,支持多Worker类型与配置,可处... 目录一、什么是 Gunicorn?二、为什么需要Gunicorn?三、安装Gunicorn四、基本使用启

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置