[发明专利]一种文件上传方法和装置、电子设备及存储介质有效
申请号: | 202110778008.0 | 申请日: | 2021-07-09 |
公开(公告)号: | CN113726842B | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 郭雯宇 | 申请(专利权)人: | 贝壳找房(北京)科技有限公司 |
主分类号: | H04L67/06 | 分类号: | H04L67/06;H04L49/9015 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 程琛 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 上传 方法 装置 电子设备 存储 介质 | ||
本发明提供一种文件上传方法和装置、电子设备及存储介质,该方法包括:接收上传文件指令;遍历文件双向链表,确定待上传文件对应的代理对象;其中,所述文件双向链表包括多个依次通过双向指针链接的代理对象,所述代理对象包括对应文件的状态数据和分片数据;根据待上传文件的状态数据,将待上传文件对应的分片数据发送至服务器。本发明使用双向链表结构对所有待处理文件进行集中统一调度和管理,实现多文件的简便并行处理,使分片上传过程不再需要依赖发布订阅模式并可以对上传状态实时监管,使文件处理流程不丢失,为重试和断点续传做好准备,实现文件上传的高效、稳定,同时提升用户体验。
技术领域
本发明涉及互联网技术领域,尤其涉及一种文件上传方法和装置、电子设备及存储介质。
背景技术
目前,由前端页面上传的视频、图片通常是不超过20M的小文件,不分片直接上传即可。对于数据量较大的文件,采用分片上传的方式。大文件上传往往会出现上传中断的情形,为了实现断点续传,通常采用事件模型进行订阅发布,实时监管文件分片处理情况,使文件处理流程不丢失。
其中,不分片直接上传适用于数据量较小的文件,但是随着文件数据的增加,上传时间变长,加之网络环境存在不稳定性,加大了文件上传失败的概率,所以上传大文件通常采用分片上传方式。利用订阅发布模式实现文件断点续传的方式下,所用事件模型分为事件监听、事件触发并处理回调、事件销毁,这三部分常常独立存在于不同文件中,如果管理不当会造成浏览器内存泄漏的问题,而且处理过程也比较繁琐,无法实现稳定、高效地多文件并行处理。
发明内容
本发明提供一种文件上传方法和装置,用以解决现有技术监管文件处理流程的过程繁琐,以及因管理不当造成内存泄漏的问题,实现文件上传的高效、稳定,同时提升用户体验。
本发明提供一种文件上传方法,包括:
接收上传文件指令;
遍历文件双向链表,确定待上传文件对应的代理对象;其中,所述文件双向链表包括多个依次通过双向指针链接的代理对象,所述代理对象包括对应文件的状态数据和分片数据;
根据所述待上传文件的状态数据,将所述待上传文件对应的分片数据发送至服务器。
根据本发明提供的一种文件上传方法,所述方法还包括:在接收上传文件指令的情况下,若接收到新增文件,生成所述新增文件的代理对象;
根据所述状态数据判断所述文件双向链表中是否存在中止文件;
若是,将所述新增文件的代理对象添加至首个中止文件之前;
若否,将所述新增文件的代理对象添加至文件双向链表的尾部。
根据本发明提供的一种文件上传方法,所述状态数据包括:待处理分片队列、成功队列、失败队列、分片总数、中止标识符和文件唯一标识符;
根据所述待上传文件的状态数据,将所述待上传文件对应的分片数据发送至服务器,包括:
根据所述待上传文件的状态数据,确定所述待上传文件的状态;
若所述待上传文件的状态为中止状态,停止访问后续的代理对象;
若所述待上传文件的状态为非中止状态,且所述待上传文件的分片总数为1,直接将所述待上传文件对应的分片数据上传至服务器,若上传成功,将所述分片数据存储至所述代理对象的成功队列,若上传失败,将所述分片数据存储至所述代理对象的失败队列;
若所述待上传文件的状态为非中止状态,且所述待上传文件的分片总数大于1,且文件唯一标识符为空,将所述待上传文件的状态设置为锁定状态,继续访问下一个待上传文件的代理对象;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贝壳找房(北京)科技有限公司,未经贝壳找房(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110778008.0/2.html,转载请声明来源钻瓜专利网。