文件上传下载方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:33498666 阅读:33 留言:0更新日期:2022-05-19 01:09
本申请属于文件传输领域,涉及文件上传下载方法、装置、计算机设备及存储介质,方法包括:桌面应用框架Electron通过节点node的spawn启动go,由go生成可执行程序exe;由Electron选择文件进行上传下载,由vuex存储上传下载文件信息,将所述上传下载文件信息存入数据库sqlite3;可执行程序exe通过套接字socket与Electron建立连接;Electron向go发送文件上传下载的任务及用户界面展示,go执行程序。通过Electron、go、sqlite3分工协作,使得文件上传下载速度快,进程消耗小,提升文件传输的效率。的效率。的效率。

【技术实现步骤摘要】
文件上传下载方法、装置、计算机设备及存储介质


[0001]本申请涉及文件传输
,尤其涉及文件上传下载方法、装置、计算机设备及存储介质。

技术介绍

[0002]Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架,常用于PC端的软件开发,比如网盘、通讯软件等,这些都需要对文件进行上传下载的操作。考虑到javaScript是单线程的因素,在并发上传下载上有所限制,使用了go作为操作上传下载端使用分块上传下载,可以断点上传下载,Electron作为ui显示。Electron的自带的will

download下载功能,form表单上传,js实现的分块上传下载,will

download 可以支持断点下载,但是程序关闭后需要重新下载,form表单上传大文件会卡住页面,js分块上传是单线程的。Electron的多进程文件上传下载,利用节点node的child_process启动一个js的进程作上传下载的任务,Electron主进程管理这些节点node生成的child_process,但是进程的开销较大。

技术实现思路

[0003]本申请实施例的目的在于提出一种文件上传下载方法、装置、计算机设备及存储介质,以解决现有技术中基于Electron的文件上传下载中单线程上传效率低或者多进程文件上传下载进程开销大的问题。
[0004]为了解决上述技术问题,本申请提供一种文件上传下载方法,采用了如下所述的技术方案,包括下述步骤:桌面应用框架Electron通过节点node的spawn启动go,由go生成可执行程序exe;由桌面应用框架Electron选择文件进行上传下载,由vuex存储上传下载文件信息,将所述上传下载文件信息存入数据库sqlite3;可执行程序exe通过套接字socket与Electron建立连接;桌面应用框架Electron向go发送文件上传下载的任务及用户界面展示,go执行程序。
[0005]进一步的,所述上传下载文件信息包括:文件的上传下载进度、上传下载状态、上传下载速度、文件大小、文件名称、上传下载完成时间、下载路径、上传路径、文件ID号和文件的MD5值。
[0006]进一步的,所述数据库sqlite3分页显示任务,设置100~200个任务为一页。
[0007]进一步的,设置go执行程序的个数为5~20。
[0008]进一步的,所述桌面应用框架Electron通过节点node的spawn启动go,由go生成可执行程序exe的步骤还包括:可执行程序exe与桌面应用框架Electron建立socket连接,将可执行程序exe作为socket的服务端,将桌面应用框架Electron作为socket的客户端;
在桌面应用框架Electron上启动文件上传下载的任务可执行程序。
[0009]进一步的,所述可执行程序exe通过套接字socket与桌面应用框架Electron建立连接的步骤还包括:由桌面应用框架Electron 获取可用端口9000~65539;桌面应用框架Electron通过spwan启动可执行程序exe,并传入可用端口9000~65539和sqlite3数据库路径;可执行程序exe启动后,根据可用端口9000~65539,建立套接字socket服务端;桌面应用框架Electron根据可用端口9000~65539,建立套接字socket客户端,与可执行程序exe进行通讯。
[0010]进一步的,所述桌面应用框架Electron向go发送文件上传下载的任务及用户界面展示,go执行程序的步骤还包括:所述桌面应用框架Electron向go发送文件上传的任务及用户界面展示,go执行程序和所述桌面应用框架Electron向go发送文件下载的任务及用户界面展示,go执行程序。为了解决上述技术问题,本申请还提供一种文件上传下载装置,采用了如下所述的技术方案,包括:启动模块,用于桌面应用框架Electron通过节点node的spawn启动go,由go生成可执行程序exe;配置模块,用于由桌面应用框架Electron选择文件进行上传下载,由vuex存储上传下载文件信息,将所述上传下载文件信息存入数据库sqlite3;连接模块,用于可执行程序exe通过套接字socket与桌面应用框架Electron建立连接;执行模块,用于桌面应用框架Electron向go发送文件上传下载的任务及用户界面展示,go执行程序。
[0011]为了解决上述技术问题,本申请还提供一种计算机设备,采用了如下所述的技术方案:包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的文件上传下载方法的步骤。
[0012]为了解决上述技术问题,本申请还提供一种计算机可读存储介质,采用了如下所述的技术方案:所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的文件上传下载方法的步骤。
[0013]与现有技术相比,本申请主要有以下有益效果:在现有Electron的基础上,利用go生成一个可执行程序exe,通过socket与Electron进行通讯连接,Electron负责发送上传下载的任务以及ui展示,go负责执行程序,而sqlite保存下载记录,这样通过Electron、go、sqlite3分工协作,使得文件上传下载速度快,进程消耗小,提升文件传输的效率,可普遍适用于文件上传下载频率的

附图说明
[0014]为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是本申请可以应用于其中的示例性系统架构图;图2 是本申请的文件上传下载方法的一个实施例的流程图;图3是本申请中文件上传下载程序启动流程图;图4是本申请中执行文件上传下载流程图;图5是本申请中文件上传下载任务初始化流程图;图6是本申请中暂停文件上传下载任务流程图;图7是本申请中恢复文件上传下载任务流程图;图8是本申请的文件上传下载装置的一个实施例的结构示意图;图9是本申请的文件上传下载装置的另一个实施例的结构示意图;图10是本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
[0016]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
[0017]在本文中提及“实施例”意味着,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件上传下载方法,其特征在于,包括下述步骤:桌面应用框架Electron通过节点node的spawn启动go,由go生成可执行程序exe;由桌面应用框架Electron选择文件进行上传下载,由vuex存储上传下载文件信息,将所述上传下载文件信息存入数据库sqlite3;可执行程序exe通过套接字socket与桌面应用框架Electron建立连接;桌面应用框架Electron向go发送文件上传下载的任务及用户界面展示,go执行程序。2.根据权利要求1所述的文件上传下载方法,其特征在于,所述上传下载文件信息包括:文件的上传下载进度、上传下载状态、上传下载速度、文件大小、文件名称、上传下载完成时间、下载路径、上传路径、文件ID号和文件的MD5值。3.根据权利要求1所述的文件上传下载方法,其特征在于,所述数据库sqlite3分页显示文件上传下载的任务,设置100~200个文件上传下载的任务为一页。4.根据权利要求3所述的文件上传下载方法,其特征在于,设置go执行程序的个数为5~20。5.根据权利要求1所述的文件上传下载方法,其特征在于,所述桌面应用框架Electron通过节点node的spawn启动go,由go生成可执行程序exe的步骤还包括:可执行程序exe与桌面应用框架Electron建立socket连接,将可执行程序exe作为socket的服务端,将桌面应用框架Electron作为socket的客户端;在桌面应用框架Electron上启动文件上传下载的任务。6.根据权利要求1至5任意一项所述的文件上传下载方法,其特征在于,所述可执行程序exe通过套接字socket与桌面应用框架Electron建立连接的步骤还包括:由桌面应用框架Electron 获取可用端口9000~65539;桌面应用框架El...

【专利技术属性】
技术研发人员:邓垚史伟黄衍博
申请(专利权)人:广东睿江云计算股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1