CN114285838A - 一种文件上传方法、装置、系统、存储介质及电子设备 - Google Patents
一种文件上传方法、装置、系统、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114285838A CN114285838A CN202111576676.1A CN202111576676A CN114285838A CN 114285838 A CN114285838 A CN 114285838A CN 202111576676 A CN202111576676 A CN 202111576676A CN 114285838 A CN114285838 A CN 114285838A
- Authority
- CN
- China
- Prior art keywords
- file
- uploading
- uploaded
- transmission
- transmission strategy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000005540 biological transmission Effects 0.000 claims abstract description 177
- 230000000903 blocking effect Effects 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims 1
- 230000006978 adaptation Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 20
- 238000012795 verification Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种文件上传方法、装置、系统、存储介质及电子设备。其中,文件上传方法包括:基于待上传文件的数据量和网络状态,生成上传请求,并将上传请求发送至服务器,接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传;在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。提高传输策略与上传环境的适配度,在保证客户端正常运行的情况下,提高文件上传效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种文件上传方法、装置、系统、存储介质及电子设备。
背景技术
在日常的开发中,经常会有上传文件这类需求,对于小文件来说可以直接上传,如果是大文件的话,传统的上传方式会造成客户端卡死、占用大量系统资源、一旦断网则上传失败等情况。
针对于上述问题,通过对文件分块上传的方式,将大文件切分将单个请求变小,服务端通过合并分块的方式完成大文件的上传流程。
但是上述文件上传方法中分块的大小是固定,灵活性和适应性差。
发明内容
本发明实施例提供一种文件上传方法、装置、系统、存储介质及电子设备,以实现自适应地进行文件上传。
第一方面,本发明实施例提供了一种文件上传方法,包括:
基于待上传文件的数据量和网络状态,生成上传请求,并将上传请求发送至服务器,接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;
基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传;
在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。
第二方面,本发明实施例还提供了一种文件上传方法,包括:
接收客户端发送的上传请求,提取所述上传请求中请求参数,其中,所述请求参数包括待上传文件的数据量、网络状态、期望传输策略中的一项或多项;
基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端,其中,所述传输策略包括并行数和分块信息;
接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
第三方面,本发明实施例还提供了一种文件上传方法,包括:
客户端基于待上传文件的数据量和网络状态生成上传请求,并将上传请求发送至服务器;
所述服务器接收客户端发送的上传请求,提取所述上传请求中请求参数,基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端;
所述客户端接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传,以及在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传;
所述服务器接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
第四方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任一实施例提供的文件上传方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例提供的文件上传方法。
本实施例的技术方案,通过根据待上传文件的数据量和网络状态确定待上传文件的传输策略,该传输策略与待上传文件以及当前的上传条件相匹配,兼顾了上传速度,同时避免了对客户端资源的占用。进一步的,在文件上传的过程中,基于客户端的当前资源消耗状态对传输策略进行实时更新,以优化传输策略,提高传输策略与上传环境的适配度,在保证客户端正常运行的情况下,提高文件上传效率。
附图说明
图1是一种文件分块上传的流程示意图;
图2为本发明实施例提供的一种文件上传方法的流程图;
图3为本发明实施例提供的一种文件上传方法的流程图;
图4是本发明实施例提供的一种文件上传方法的流程示意图;
图5是本发明实施例提供的一种文件上传方法的流程图;
图6是本发明实施例提供的一种文件上传装置的结构示意图
图7是本发明实施例提供的一种文件上传装置的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
参见图1,图1是一种文件分块上传的流程示意图。其中,文件上传基于开源的WebUploader.js来进行,在开始上传之前指定分块大小参数chunkSize,并基于该分块大小参数chunkSize执行以下步骤:
步骤1、客户端使用WebUploader获取文件信息,并将文件大小、md5、名称等属性发送给服务端;
步骤2、服务端收到后检查文件是否存在,创建文件目录并返回成功给客户端;
步骤3、客户端使用WebUploader将文件分块后分块上传到服务端,其中,文件块的大小基于预先指定的分块大小参数chunkSize确定;
步骤4、服务端将收到的分块保存在分块的目录;
步骤5、结束后客户端通知服务端上传已完成,服务端对分块文件进行合并然后删除分块,完成分块上传文件流程。
上述文件上传的方法,存在如下技术问题:1)单线程方式上传如果在文件较大,分片数目较多的情况下会造成分块上传请求排队阻塞,耗时长的情况。2)如果用多线程的方式进行分块上传,会较为耗费线程资源,同时可能带来额外的线程切换资源消耗和线程安全问题等。
针对上述技术问题,本发明实施例提供的一种文件上传方法,参见图2,图2为本发明实施例提供的一种文件上传方法的流程图,本实施例可适用于对文件进行自适应上传的情况,该方法可以由本发明实施例提供的文件上传来执行,该文件上传装置可以由软件和/或硬件来实现,该文件上传装置可以配置在诸如手机、PC机等的终端上,具体包括如下步骤:
S110、基于待上传文件的数据量和网络状态,生成上传请求,并将上传请求发送至服务器,接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息。
S120、基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传。
S130、在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。
本实施例中,进行上传的文件可以是本地存储的文件,还可以是外部导入的文件,对此不作限定。进一步的,进行上传文件的文件格式可以是文本、图像、视频、音频的一项或多项,对此不作限定。
在接收到对文件的上传指令的情况下,获取文件信息和当前的网络状态,其中,文件信息可以是包括文件标识和文件数据量,文件标识例如可以是文件名或者用于表征该文件的字符串等。文件的数据量可以是通过读取文件大小确定。网络状态用于影响文件的上传速度,当前的网络状态可以是当前网速,或者,还可以是当前的网络类型,例如,网络状态可以是4G、5G或者wifi等,不同的网络类型对应不同的网络速度。
基于待上传文件的数据量和网络状态生成上传请求,将上传请求发送至文件上传的服务器,该服务器用于创建文件目标,同时基于上传请求中的数据量和网络状态生成该待上传文件的传输策略,其中,该传输策略中包括并行数和分块信息。并行数为与服务器建立的连接数,每一连接分别用于上传文件块,分块信息为每一文件块的大小,其中,并行数越多,文件上传越快,对网络资源要求越高,分块信息越大,每一文件块越大,对网络资源要求越高。待上传文件的数据量分别与并行数和分块信息正相关,网络状态对应的网络速度分别与并行数和分块信息正相关。服务器中配置有传输策略的确定规则,基于上传请求中的数据量和网络状态,以及传输策略的确定规则得到该待上传文件的传输策略。
本实施例中,通过服务器确定待上传文件的传输策略,该传输策略与待上传文件以及当前的上传条件相匹配,兼顾了上传速度,同时避免了对客户端资源的占用。
服务器将传输策略反馈至客户端,客户端根据传输策略中的分块信息对待上传文件进行文件分割,以及通过并行数的文件块进行并行上传。在一些实施例中,根据待上传文件的内容顺序,对分块得到的文件块设置标识,该标识可用于标记每一文件块,同时可对各个文件块的顺序进行标记,例如,文件块的标识可以是文件块的编码。通过对文件块设置标识,便于服务器对上传的文件块进行合并,避免文件块的上传顺序影响合并后文件的准确性。
本实施例中,基于所述并行数对各文件块进行上传,包括:创建与服务器之间的连接,其中,所述连接数与所述并行数相同;基于非阻塞I/O创建管理线程,该管理线程用于管理客户端与服务器之间的文件上传过程,通过所述与服务器之间的连接对各数据块进行并行上传。其中,客户端与服务器之间的连接,为文件上传通道,每一客户端与服务器之间的连接用于单次对一个文件块进行上传。通过创建并行数的连接,用于实现并行数的文件块的并行上传,充分利用设备发挥出最好性能,多路并行IO复用,让配置高的设备上传的更快,以提高文件的上传效率。
基于非阻塞I/O创建一管理线程,该管理线程可实现对多个文件块的并行上传,不会造成文件块上传请求的阻塞问题,服务端可以接受多个客户端上传文件请求并建立多个连接。同时管理线程的数量为一,通过一个线程管理文件读写,节约线程资源,保证线程安全性。
在上述实施例的基础上,根据文件上传过程中的资源消耗,对传输策略进行实时更新,以优化传输策略,实现对文件的上传。其中,文件上传过程中的资源消耗可以包括但不限于客户端当前的CPU资源的使用率、内存占用率。
可选的,根据当前资源消耗状态更新所述传输策略,包括:在所述当前资源消耗状态未超过资源消耗阈值的情况下,增大当前传输策略中的并行数和/或分块信息;在所述当前资源消耗状态超过资源消耗阈值的情况下,减小当前传输策略中的并行数和/或分块信息。
服务器确定的传输策略基于客户端的共性确定,但是由于每一客户端均存在差异性。本实施例中,根据客户端的当前资源消耗状态更新传输策略,以得到适应于客户端的当前资源消耗状态的传输策略,提高传输策略与当前客户端的适配度,以保证待上传文件的高效上传。
预先设置资源消耗阈值,其中,资源消耗阈值可以包括CPU资源的使用率阈值和内存占用率阈值。实时监测当前资源消耗状态,即每一个资源消耗信息,在当前资源消耗状态中的每一资源消耗信息均未超过对应资源消耗阈值的情况下,表明在客户端正常运行的情况下可增加上传文件的数据量,即增大当前传输策略中的并行数和/或分块信息;在当前资源消耗状态中的至少一个资源消耗信息超过对应资源消耗阈值的情况下,表明当前的文件上传影响了客户端的正常运行,需减小文件上传占用的资源消耗,即减小当前传输策略中的并行数和/或分块信息。
可选的,预先设置有并行数和分块信息的单位调节量,可根据调节方式(例如增加或减小),基于单位调节量对传输策略中的并行数和/或分块信息进行调节,例如在所述当前资源消耗状态未超过资源消耗阈值的情况下,对当前传输策略中的并行数和/或分块信息,增加对应的单位调节量,在所述当前资源消耗状态超过资源消耗阈值的情况下,对当前传输策略中的并行数和/或分块信息,减小对应的单位调节量。
可选的,可根据当前资源消耗状态和资源消耗阈值的差值,确定并行数和分块信息的调节量。在当前资源消耗状态中的每一资源消耗信息均未超过对应资源消耗阈值的情况下,每一资源消耗信息与对应资源消耗阈值的差值,确定各差值对应的调节量,该调节量可以是并行数和/或分块信息的调节量,基于最小调节量更新传输策略,以保证客户端的正常运行的同时,最大限度的提高文件上传速度;在当前资源消耗状态中的至少一个资源消耗信息超过对应资源消耗阈值的情况下,对于超过资源消耗阈值的资源消耗信息,确定资源消耗信息与对应资源消耗阈值的差值,确定各差值对应的调节量,该调节量可以是并行数和/或分块信息的调节量,基于最大调节量更新传输策略,以保证客户端的正常运行的同时,最小限度的限制文件上传速度。
在一些可选实施例中,并行数的调整优先级高于分块信息的调整优先级。在更新传输策略的情况下,优先调节并行数,以加快对传输策略的更新。
本实施例的技术方案,通过根据待上传文件的数据量和网络状态确定待上传文件的传输策略,该传输策略与待上传文件以及当前的上传条件相匹配,兼顾了上传速度,同时避免了对客户端资源的占用。进一步的,在文件上传的过程中,基于客户端的当前资源消耗状态对传输策略进行实时更新,以优化传输策略,提高传输策略与上传环境的适配度,在保证客户端正常运行的情况下,提高文件上传效率。
图3为本发明实施例提供的一种文件上传方法的流程图。本实施例可适用于对文件进行自适应上传的情况,该方法可以由本发明实施例提供的文件上传装置来执行,该文件上传装置可以由软件和/或硬件来实现,该文件上传装置可以配置在诸如服务器等的电子设备上,具体包括如下步骤:
S210、接收客户端发送的上传请求,提取所述上传请求中请求参数,其中,所述请求参数包括待上传文件的数据量、网络状态、期望传输策略中的一项或多项。
S220、基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端,其中,所述传输策略包括并行数和分块信息。
S230、接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
本实施例中,服务器基于预先设置的传输策略确定规则和上传请求中请求参数确定上传请求对应的传输策略。
可选的,所述基于所述请求参数确定传输策略,包括:将所述待上传文件的数据量、网络状态输入至预先设置的策略模型中,得到所述策略模型输出的传输策略。其中,策略模型可以是机器学习模型,该机器学习模型可以是神经网络模型、深度神经网络模型或者逻辑回归模型等,对此不作限定,可根据用户需求确定。对于策略模型,可根据样本数据训练得到,其中,样本数据可以是样本文件,以及该样本文件在不同网络状态下的上传策略。通过样本数据对策略模型进行迭代训练,得到具有传输策略确定功能的策略模型。在接收到任一上传请求时,读取该上传请求中的请求参数,将请求参数中的待上传文件的数据量、网络状态输入至预先设置的策略模型中,得到该策略模型输出的传输策略。通过在服务器中配置策略模型,快速确定每一上传请求的传输策略,处理速度快,准确度高。
可选的,所述基于所述请求参数确定传输策略,包括将所述期望传输策略确定为传输策略;其中,该期望传输策略可以是用户输入的,可以是客户端根据待上传文件的数据量、网络状态确定的,还可以是客户端根据历史传输策略确定的,对此不作限定。判定期望传输策略为可执行策略,若是,则将所述期望传输策略确定为传输策略,若否,则基于待上传文件的数据量、网络状态确定传输策略。其中,可以基于并行数和分块信息的最大阈值,分别对期望传输策略中的期望并行数和期望分块信息进行判定,在期望并行数不大于并行数的最大阈值和期望分块信息不大于分块信息的最大阈值的情况下,确定期望传输策略为可执行策略。
可选的,所述基于所述请求参数确定传输策略,包括:将所述待上传文件的数据量、网络状态在传输策略库中进行匹配,其中,所述传输策略库中包括多个传输策略以及各传输策略对应的请求参数范围。具体的,传输策略库中分别包括各网络状态下,不同数据量范围对应的传输策略。该网络状态可以是网络类型,还可以是网络速度分段。将待上传文件的数据量、网络状态在传输策略库中进行匹配,具体的,将待上传文件的数据量,在该网络状态下的多个数据量范围中进行匹配,在确定待上传文件的数据量所属的数据量范围的情况下,将该数据量范围对应的传输策略确定为上传请求对应的传输策略。
将确定的传输策略发送至客户端,以使客户端基于该传输策略执行文件上传。其中,上传请求中可以包括文件标识,基于文件标识创建文件目录,对接收到客户端上传的文件块,存储在对应的文件目录下。
在上述实施例的基础上,上传请求中还包括MD5验证信息,该MD5验证信息用于对上传的文件块进行校验。其中,每一文件块中包括第一验证信息,该第一验证信息为客户端基于MD5验证信息对文件块确定的,其中,MD5验证信息可以是一验证参数,用于对文件块执行MD5算法的处理。服务器对接收到上传的文件块,基于上传请求中的MD5验证信息对文件块进行处理,以得到第二验证信息,将第一验证信息和第二验证信息进行比对,在第一验证信息和第二验证信息一致的情况下,确定上传文件块的有效性,避免上传错误的情况。
客户端在将待上传文件的各个文件块均上传完成的情况下,向服务器发送传输完成信号,服务器基于该传输完成信号,将文件目录下的多个文件块进行合并,得到完整的上传文件。其中,每一文件块均配置有标识,用于标记文件块的顺序,可根据文件块的标识对多个文件块进行合并。
本实施例提供的技术方案,通过确定待上传文件的自适应传输策略,灵活设置对待上传文件的分块信息和并行数,提高文件上传的灵活性和适用性。
图4是本发明实施例提供的一种文件上传方法的流程示意图。该方法具体包括如下步骤:
S310、客户端基于待上传文件的数据量和网络状态生成上传请求,并将上传请求发送至服务器。
S320、所述服务器接收客户端发送的上传请求,提取所述上传请求中请求参数,基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端。
S330、所述客户端接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传,以及在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。
S340、所述服务器接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
本实施例的技术方案,通过在客户端在文件上传之间,将文件上传的相关信息发送至服务器,服务器根据待上传文件的数据量和网络状态确定待上传文件的传输策略,该传输策略与待上传文件以及当前的上传条件相匹配,兼顾了上传速度,同时避免了对客户端资源的占用。进一步的,在文件上传的过程中,基于客户端的当前资源消耗状态对传输策略进行实时更新,以优化传输策略,提高传输策略与上传环境的适配度,在保证客户端正常运行的情况下,提高文件上传效率。
在上述实施例的基础上,本发明实施例提供了一种优选实例,参见图5,图5是一种文件上传方法的流程图。该方法包括:客户端向服务端发送文件的大小(即待上传文件的数据量)、md5,以及网络状态(当前网络是4G还是wifi)等信息。服务端根据获取到的当前网络情况(获取方式不做限制),决定适合当前情况的并行数同时将并行数大小(即传输策略)返回给客户端。客户端将文件切分块,并按收到并行数大小建立多个与服务端的连接,将文件分块均匀分配至各个连接并行上传文件分块。服务端收到分块后存到对应的分块目录。服务端在上传过程中统计上传速率并动态更新连接数大小以使上传效率最大化。例如,在客户端的当前资源消耗状态未超过资源消耗阈值的情况下,增大并行数,在当前资源消耗状态超过资源消耗阈值的情况下,减少并行数;或者,在上传速率小于预期速率(可以是基于待上传文件的数据量和预期传输时长确定)的情况下,增加并行数,在上传速率大于预期速率的情况下,减小并行数,避免传输占用的资源消耗影响客户端的正常运行。客户端收到服务端下发的并行数后调整连接数目,并且将未上传分块分配至各新建立连接。所有连接上传均结束后客户端通知服务端上传已完成,服务端对分块文件进行合并、检验文件完整性然后删除分块,完成文件分块上传流程。
图6是本发明实施例提供的一种文件上传装置的结构示意图,该文件上传装置可集成在诸如手机、计算机等的终端内。
传输策略确定模块410,基于待上传文件的数据量和网络状态,生成上传请求,并将上传请求发送至服务器,接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息。
文件上传模块420,基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传。
传输策略更新模块430,用于在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。
可选的,文件上传模块420用于:
创建与服务器之间的连接,其中,所述连接数与所述并行数相同;
基于非阻塞I/O,通过所述与服务器之间的连接对各数据块进行并行上传。
可选的,传输策略更新模块430用于:
在所述当前资源消耗状态未超过资源消耗阈值的情况下,增大当前传输策略中的并行数和/或分块信息;
在所述当前资源消耗状态超过资源消耗阈值的情况下,减小当前传输策略中的并行数和/或分块信息。
可选的,所述并行数的调整优先级高于所述分块信息的调整优先级。
本发明实施例所提供的文件上传装置可执行本发明任意实施例所提供的文件上传方法,具备执行文件上传方法相应的功能模块和有益效果。
图7是本发明实施例提供的一种文件上传装置的结构示意图,该文件上传装置可集成在诸如服务器等的电子设备中。
请求参数提取模块510,用于接收客户端发送的上传请求,提取所述上传请求中请求参数,其中,所述请求参数包括待上传文件的数据量、网络状态、期望传输策略中的一项或多项;
传输策略确定模块520,用于基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端,其中,所述传输策略包括并行数和分块信息;
上传文件处理模块530,用于接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
可选的,传输策略确定模块520用于:
将所述待上传文件的数据量、网络状态输入至预先设置的策略模型中,得到所述策略模型输出的传输策略;或者,
将所述期望传输策略确定为传输策略;或者,
将所述待上传文件的数据量、网络状态在传输策略库中进行匹配,其中,所述传输策略库中包括多个传输策略以及各传输策略对应的请求参数范围。
本发明实施例所提供的文件上传装置可执行本发明任意实施例所提供的文件上传方法,具备执行文件上传方法相应的功能模块和有益效果。
图8为本发明实施例提供的一种电子设备的结构示意图。图8示出了适于用来实现本发明实施方式的电子设备12的框图。图8显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担图像分类功能的电子设备。
如图8所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器16,存储装置28,连接不同系统组件(包括存储装置28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储装置28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块26的程序36,可以存储在例如存储装置28中,这样的程序模块26包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网关环境的实现。程序模块26通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、摄像头、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网关适配器20与一个或者多个网关(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网关,例如因特网)通信。如图所示,网关适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器16通过运行存储在存储装置28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的文件上传方法。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的文件上传方法。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的文件上传方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的源代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的源代码可以用任何适当的介质传输,包括——但不限于否线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机源代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。源代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网关——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种文件上传方法,其特征在于,包括:
基于待上传文件的数据量和网络状态,生成上传请求,并将上传请求发送至服务器,接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;
基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传;
在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。
2.根据权利要求1所述的方法,其特征在于,所述基于所述并行数对各文件块进行上传,包括:
创建与服务器之间的连接,其中,所述连接数与所述并行数相同;
基于非阻塞I/O,通过所述与服务器之间的连接对各数据块进行并行上传。
3.根据权利要求1所述的方法,其特征在于,所述根据当前资源消耗状态更新所述传输策略,包括:
在所述当前资源消耗状态未超过资源消耗阈值的情况下,增大当前传输策略中的并行数和/或分块信息;
在所述当前资源消耗状态超过资源消耗阈值的情况下,减小当前传输策略中的并行数和/或分块信息。
4.一种文件上传方法,其特征在于,包括:
接收客户端发送的上传请求,提取所述上传请求中请求参数,其中,所述请求参数包括待上传文件的数据量、网络状态、期望传输策略中的一项或多项;
基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端,其中,所述传输策略包括并行数和分块信息;
接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
5.根据权利要求4所述的方法,其特征在于,所述基于所述请求参数确定传输策略,包括:
将所述待上传文件的数据量、网络状态输入至预先设置的策略模型中,得到所述策略模型输出的传输策略;或者,
将所述期望传输策略确定为传输策略;或者,
将所述待上传文件的数据量、网络状态在传输策略库中进行匹配,其中,所述传输策略库中包括多个传输策略以及各传输策略对应的请求参数范围。
6.一种文件上传方法,其特征在于,包括:
客户端基于待上传文件的数据量和网络状态生成上传请求,并将上传请求发送至服务器;
所述服务器接收客户端发送的上传请求,提取所述上传请求中请求参数,基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端;
所述客户端接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传,以及在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传;
所述服务器接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
7.一种文件上传装置,其特征在于,包括:
传输策略确定模块,基于待上传文件的数据量和网络状态,生成上传请求,并将上传请求发送至服务器,接收所述服务器反馈的传输策略,其中,所述传输策略包括并行数和分块信息;
文件上传模块,基于所述分块信息对所述待上传文件进行分块处理,并基于所述并行数对各文件块进行上传;
传输策略更新模块,用于在文件块的上传过程中,监测当前资源消耗状态,并根据当前资源消耗状态更新所述传输策略,并基于更新后的传输策略对未上传文件块进行上传。
8.一种文件上传装置,其特征在于,包括:
请求参数提取模块,用于接收客户端发送的上传请求,提取所述上传请求中请求参数,其中,所述请求参数包括待上传文件的数据量、网络状态、期望传输策略中的一项或多项;
传输策略确定模块,用于基于所述请求参数确定传输策略,并将所述传输策略发送至所述客户端,其中,所述传输策略包括并行数和分块信息;
上传文件处理模块,用于接收客户端上传的文件块并存储,以及在接收传输完成信号的情况下,对接收的多个文件块进行合并,得到上传文件。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-3中任一所述的文件上传方法,或者4-5任一所述的文件上传方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的文件上传方法,或者4-5任一所述的文件上传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111576676.1A CN114285838A (zh) | 2021-12-22 | 2021-12-22 | 一种文件上传方法、装置、系统、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111576676.1A CN114285838A (zh) | 2021-12-22 | 2021-12-22 | 一种文件上传方法、装置、系统、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114285838A true CN114285838A (zh) | 2022-04-05 |
Family
ID=80873911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111576676.1A Pending CN114285838A (zh) | 2021-12-22 | 2021-12-22 | 一种文件上传方法、装置、系统、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114285838A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065676A (zh) * | 2022-05-17 | 2022-09-16 | 深圳市绿联科技股份有限公司 | 一种上传文件的方法、装置以及电子设备 |
CN115174561A (zh) * | 2022-09-08 | 2022-10-11 | 北京亿赛通网络安全技术有限公司 | 一种文件分段传输方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780092A (zh) * | 2014-01-13 | 2015-07-15 | 阿里巴巴集团控股有限公司 | 文件传输方法和装置及服务器系统 |
CN104811499A (zh) * | 2015-05-14 | 2015-07-29 | 广东中烟工业有限责任公司 | 一种网络文件传输优化方法 |
CN109150935A (zh) * | 2017-06-19 | 2019-01-04 | 深圳联友科技有限公司 | 一种文件传输方法、装置以及移动终端 |
CN109756568A (zh) * | 2018-12-29 | 2019-05-14 | 上海掌门科技有限公司 | 文件的处理方法、设备及计算机可读存储介质 |
CN109831506A (zh) * | 2019-01-31 | 2019-05-31 | 百度在线网络技术(北京)有限公司 | 文件上传方法、装置、终端、服务器及可读存储介质 |
CN112492033A (zh) * | 2020-11-30 | 2021-03-12 | 深圳市移卡科技有限公司 | 文件传输方法、系统及计算机可读存储介质 |
CN113765945A (zh) * | 2020-06-01 | 2021-12-07 | 深圳兆日科技股份有限公司 | 文件动态分片传输方法、装置、设备和存储介质 |
CN113824760A (zh) * | 2021-08-03 | 2021-12-21 | 中债金科信息技术有限公司 | 文件并发分块上传方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-22 CN CN202111576676.1A patent/CN114285838A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104780092A (zh) * | 2014-01-13 | 2015-07-15 | 阿里巴巴集团控股有限公司 | 文件传输方法和装置及服务器系统 |
CN104811499A (zh) * | 2015-05-14 | 2015-07-29 | 广东中烟工业有限责任公司 | 一种网络文件传输优化方法 |
CN109150935A (zh) * | 2017-06-19 | 2019-01-04 | 深圳联友科技有限公司 | 一种文件传输方法、装置以及移动终端 |
CN109756568A (zh) * | 2018-12-29 | 2019-05-14 | 上海掌门科技有限公司 | 文件的处理方法、设备及计算机可读存储介质 |
CN109831506A (zh) * | 2019-01-31 | 2019-05-31 | 百度在线网络技术(北京)有限公司 | 文件上传方法、装置、终端、服务器及可读存储介质 |
CN113765945A (zh) * | 2020-06-01 | 2021-12-07 | 深圳兆日科技股份有限公司 | 文件动态分片传输方法、装置、设备和存储介质 |
CN112492033A (zh) * | 2020-11-30 | 2021-03-12 | 深圳市移卡科技有限公司 | 文件传输方法、系统及计算机可读存储介质 |
CN113824760A (zh) * | 2021-08-03 | 2021-12-21 | 中债金科信息技术有限公司 | 文件并发分块上传方法、装置、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115065676A (zh) * | 2022-05-17 | 2022-09-16 | 深圳市绿联科技股份有限公司 | 一种上传文件的方法、装置以及电子设备 |
CN115174561A (zh) * | 2022-09-08 | 2022-10-11 | 北京亿赛通网络安全技术有限公司 | 一种文件分段传输方法及系统 |
CN115174561B (zh) * | 2022-09-08 | 2022-11-22 | 北京亿赛通网络安全技术有限公司 | 一种文件分段传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194647B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
US9785664B2 (en) | Gathering transaction data associated with locally stored data files | |
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN109756568B (zh) | 文件的处理方法、设备及计算机可读存储介质 | |
CN114285838A (zh) | 一种文件上传方法、装置、系统、存储介质及电子设备 | |
CN111382123B (zh) | 文件存储方法、装置、设备及存储介质 | |
CN108874825B (zh) | 一种异常数据的校验方法和装置 | |
US9934390B2 (en) | Data redaction system | |
CN113791735A (zh) | 视频数据存储方法、装置、计算机设备及存储介质 | |
CN113191889A (zh) | 风控配置方法、配置系统、电子设备及可读存储介质 | |
CN114979125B (zh) | 文件快速上传网盘方法、装置、终端及存储介质 | |
CN111835801A (zh) | 文件下载方法、装置、服务器、边缘设备、终端及介质 | |
AU2020226900B2 (en) | Adaptive retrieval of objects from remote storage | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 | |
CN113076175A (zh) | 用于虚拟机的内存共享方法及装置 | |
CN112817788A (zh) | 任务异常告警方法、装置、服务器及存储介质 | |
CN112804312A (zh) | 文件上传方法、设备以及计算机可读介质 | |
CN111585897A (zh) | 请求路由管理方法、系统、计算机系统及可读存储介质 | |
CN114063879B (zh) | 用于处理操作命令的方法、电子设备和存储介质 | |
CN111614749B (zh) | 数据发送方法、装置、计算机设备和存储介质 | |
CN113641966B (zh) | 一种应用集成方法、系统、设备及介质 | |
CN114880549B (zh) | 辅助审查媒体资源信息的服务平台、装置、设备和介质 | |
CN113313195B (zh) | 标注任务处理方法、装置、设备、存储介质及程序产品 | |
US11431349B2 (en) | Method, electronic device and computer program product for processing data | |
US12088674B2 (en) | Method, electronic device, and computer program product for data processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |