CN115190117A - 一种文件上传的控制方法、装置、电子设备及存储介质 - Google Patents

一种文件上传的控制方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115190117A
CN115190117A CN202210814380.7A CN202210814380A CN115190117A CN 115190117 A CN115190117 A CN 115190117A CN 202210814380 A CN202210814380 A CN 202210814380A CN 115190117 A CN115190117 A CN 115190117A
Authority
CN
China
Prior art keywords
file
uploading
target
network
fragment
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
Application number
CN202210814380.7A
Other languages
English (en)
Inventor
刘振
明林清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Guosheng Huaxing Technology Co ltd
Original Assignee
Nanjing Guosheng Huaxing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Guosheng Huaxing Technology Co ltd filed Critical Nanjing Guosheng Huaxing Technology Co ltd
Priority to CN202210814380.7A priority Critical patent/CN115190117A/zh
Publication of CN115190117A publication Critical patent/CN115190117A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种文件上传的控制方法、装置、电子设备及存储介质,所述控制方法包括:响应于文件上传的触控操作,获取目标上传文件;根据获取到的当前网络的网络信息,确定目标上传文件的分片大小;根据目标上传文件的分片大小确定目标上传文件的上传模式;根据分片大小和上传模式将目标上传文件切割分片,将切割分片后的至少一个文件分片放入至分片队列中进行发送;针对于分片队列中的每个文件分片,将文件分片按照上传模式发送至服务器进行云存储。采用本申请提供的技术方案能够通过获取当前网络的网络信息,确定目标上传文件的分片大小和上传模式,充分利用了当前的网络环境,提高了弱网环境下文件上传的成功率。

Description

一种文件上传的控制方法、装置、电子设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其是涉及一种文件上传的控制方法、装置、电子设备及存储介质。
背景技术
在将文件上传进行云存储的过程中,大致可以分为两种形式,第一种:单文件上传形式,需要把待上传的文件组成一个数据包发送至服务器进行云存储;第二种:分片上传形式,需要把待上传的文件按照预先设置的分片大小切割分片,每个分片单独组织一个数据包发送至服务器,最后服务器端确认所有分片完成上传后,再通过文件合并进行云存储。
目前,针对于上述第一种单文件上传形式,在上传较大文件时容易受到网络影响导致该文件传输失败;针对于上述第二种分片上传形式虽然一定程度上解决了较大文件单次上传时容易传输失败的问题,但是这种分片上传形式无法充分利用当前的网络环境,在弱网环境下会导致文件传输失败率较高;因此,如何上传文件,提高弱网环境下文件上传的成功率,成为了亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种文件上传的控制方法、装置、电子设备及存储介质,能够通过获取当前网络的网络信息,确定目标上传文件的分片大小和上传模式,根据确定出的分片大小和上传模式对目标上传文件切割分片,将切割分片后的文件分片发送至服务器,充分利用了当前的网络环境,提高了弱网环境下文件上传的成功率。
本申请主要包括以下几个方面:
第一方面,本申请实施例提供了一种文件上传的控制方法,所述控制方法包括:
响应于文件上传的触控操作,获取目标上传文件;
根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;
根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;
根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;
针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
进一步的,所述网络信息包括丢包率、可用带宽以及网络延迟;所述根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小的步骤,包括:
根据获取到的当前网络的网络信息,确定是否满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件;
若满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为正常网络,并将预设分片大小确定为所述目标上传文件的分片大小;
若不满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为非正常网络,并根据获取到的丢包率、可用带宽以及网络延迟,在预先设置的丢包率、可用带宽、网络延迟以及分片大小的映射关系中,确定出所述目标上传文件对应的分片大小。
进一步的,所述根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式的步骤,包括:
根据所述目标上传文件的分片大小,确定所述目标上传文件的分片大小是否小于预设分片大小;
若小于,则将所述目标上传文件的上传模式确定为串行上传模式;
若不小于,则将所述目标上传文件的上传模式确定为并行上传模式。
进一步的,通过以下步骤将所述目标上传文件切割分片:
若所述上传模式为串行上传模式,则将所述目标上传文件按照所述分片大小切割分片出一个文件分片以将该文件分片单独发送至所述服务器;
若所述上传模式为并行上传模式,则根据预先设置的上传带宽占比确定所述并行上传模式的并发数,并将所述目标上传文件按照所述分片大小切割分片出并发数个文件分片以将所述并发数个文件分片同时发送至所述服务器。
进一步的,所述根据预先设置的上传带宽占比确定所述并行上传模式的并发数的步骤,包括:
根据预先设置的上传带宽占比,将获取到的网络信息中的可用带宽和所述上传带宽占比的乘积确定为目标上传带宽;
将所述目标上传带宽和所述分片大小的商确定为所述并行上传模式的并发数。
进一步的,所述确定所述目标上传文件的分片大小之前,通过以下步骤获取当前网络的网络信息:
根据获取到的所述目标上传文件,确定当前网络是否可用;
若可用,则将网络嗅探包发送至服务器;其中,所述网络嗅探包包括服务器用于计算当前网络的丢包率和可用带宽的UDP嗅探包以及用于计算当前网络的网络延迟的TCP嗅探包;
获取所述服务器基于所述网络嗅探包反馈的当前网络的包括丢包率、可用带宽和网络延迟的网络信息。
进一步的,所述将所述文件分片按照所述上传模式发送至服务器进行云存储之后,所述控制方法还包括:
每隔预设时间间隔将网络嗅探包发送至服务器,获取所述服务器基于所述网络嗅探包反馈的当前网络的网络信息;
根据所述服务器反馈的当前网络的网络信息确定是否更新所述目标上传文件的分片大小和所述目标上传文件的上传模式;
若更新,则将上一次切割分片后剩余的目标上传文件按照更新后的分片大小和更新后的上传模式继续进行切割分片,并将重新切割分片得到的至少一个文件分片放入所述分片队列中按照所述更新后的上传模式发送至服务端进行云存储。
第二方面,本申请实施例还提供了一种文件上传的控制装置,所述控制装置包括:
响应模块,用于响应于文件上传的触控操作,获取目标上传文件;
第一确定模块,用于根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;
第二确定模块,用于根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;
处理模块,用于根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;
发送模块,用于针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的文件上传的控制方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的文件上传的控制方法的步骤。
本申请实施例提供的一种文件上传的控制方法、装置、电子设备及存储介质,所述控制方法包括:响应于文件上传的触控操作,获取目标上传文件;根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
这样,采用本申请提供的技术方案能够通过获取当前网络的网络信息,确定目标上传文件的分片大小和上传模式,根据确定出的分片大小和上传模式对目标上传文件切割分片,将切割分片后的文件分片发送至服务器,充分利用了当前的网络环境,提高了弱网环境下文件上传的成功率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种文件上传的控制方法的流程图;
图2示出了本申请实施例所提供的另一种文件上传的控制方法的流程图;
图3示出了本申请实施例所提供的一种文件上传流程的示意图;
图4示出了本申请实施例所提供的一种文件上传的控制装置的结构图之一;
图5示出了本申请实施例所提供的一种文件上传的控制装置的结构图之二;
图6示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“文件上传的控制”,给出以下实施方式,对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。
本申请实施例下述方法、装置、电子设备或计算机可读存储介质可以应用于任何需要控制文件上传的场景,本申请实施例并不对具体的应用场景作限制,任何使用本申请实施例提供的一种文件上传的控制方法、装置、电子设备及存储介质的方案均在本申请保护范围内。
值得注意的是,在将文件上传进行云存储的过程中,大致可以分为两种形式,第一种:单文件上传形式,例如把待上传的文件组成一个数据包放到HTTP请求中发送至服务器进行云存储;第二种:分片上传形式,例如把待上传的文件按照预先设置的分片大小切割分片,每个分片单独组织一个数据包放到HTTP请求中再发送至服务器,最后服务器端确认所有分片完成上传后,再通过文件合并进行云存储。
目前,针对于上述第一种单文件上传形式,在上传较大文件时容易受到网络影响导致该文件传输失败;针对于上述第二种分片上传形式虽然一定程度上解决了较大文件单次上传时容易传输失败的问题,但是这种分片上传形式无法充分利用当前的网络环境,在弱网环境下会导致文件传输失败率较高,比如网络抖动、高丢包、高延时等;因此,如何上传文件,提高弱网环境下文件上传的成功率,成为了亟待解决的问题。
基于此,本申请提出了一种文件上传的控制方法、装置、电子设备及存储介质,所述控制方法包括:响应于文件上传的触控操作,获取目标上传文件;根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
这样,采用本申请提供的技术方案能够通过获取当前网络的网络信息,确定目标上传文件的分片大小和上传模式,根据确定出的分片大小和上传模式对目标上传文件切割分片,将切割分片后的文件分片发送至服务器,充分利用了当前的网络环境,提高了弱网环境下文件上传的成功率。
为便于对本申请进行理解,下面将结合具体实施例对本申请提供的技术方案进行详细说明。
请参阅图1,图1为本申请实施例所提供的一种文件上传的控制方法的流程图,如图1中所示,所述控制方法包括:
S101、响应于文件上传的触控操作,获取目标上传文件;
该步骤中,根据文件上传页面上的文件上传的触控操作,获取目标上传文件;例如选中文件点击“开始上传”按钮,执行上传任务,客户端根据该点击的触控操作获取需要上传的文件。
S102、根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;
该步骤中,网络信息包括丢包率、可用带宽以及网络延迟。目前上传文件的方式需要提前设置一个默认分片大小,比如2MB、5MB等,所以在复杂多变的网络状况下没有普适性,很可能会出现分片过大或者过小的问题,本实施例可以根据当前的网络信息动态确定分片大小,充分利用当前的网络环境,在网络环境不好的情况下提高文件上传的成功率。
这里,在确定所述目标上传文件的分片大小之前,通过以下步骤获取当前网络的网络信息:
1)、根据获取到的所述目标上传文件,确定当前网络是否可用;
2)、若可用,则将网络嗅探包发送至服务器;
该步骤中,网络嗅探包包括服务器用于计算当前网络的丢包率和可用带宽的UDP嗅探包以及用于计算当前网络的网络延迟的TCP嗅探包。
3)、获取所述服务器基于所述网络嗅探包反馈的当前网络的包括丢包率、可用带宽和网络延迟的网络信息。
示例性的,在真正开始上传文件前,首先判断当前网络是否可用,如果可用,先向服务器发送网络嗅探包,网络嗅探包分为两种,一种是特定序列的UDP包,用于计算网络丢包率和预估网络可用带宽;一种是特定序列的TCP包,用于计算网络延时。服务器收到网络嗅探包后,根据UDP包的接收情况计算当前网络的丢包情况和可用带宽,同时,根据TCP包的接收情况计算当前网络的延时情况,最终,服务器把当前网络的所有状态信息(丢包情况、可用带宽以及延时情况等)汇总后作为当前网络的网络信息进行反馈。
需要说明的是,确定目标上传文件的分片大小的步骤请参阅图2,图2为本申请实施例所提供另一种文件上传的控制方法的流程图,如图2中所示,根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小的步骤,包括:
S201、根据获取到的当前网络的网络信息,确定是否满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件;
S202、若满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为正常网络,并将预设分片大小确定为所述目标上传文件的分片大小;
S203、若不满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为非正常网络,并根据获取到的丢包率、可用带宽以及网络延迟,在预先设置的丢包率、可用带宽、网络延迟以及分片大小的映射关系中,确定出所述目标上传文件对应的分片大小。
该步骤中,收到服务器反馈的网络信息后,根据特定算法计算出当前网络下最佳的文件分片大小。若满足网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则当前网络为正常网络,反之,则为非正常网络。
例如,预设丢包率阈值为5%,预设延迟阈值为50ms,预设带宽阈值为20MB,若丢包率<5%、网络延迟RTT<50ms且可用带宽大于等于20MB时,则当前网络为正常网络,正常网络对应的分片大小为预设分片大小X(例如2MB);若丢包率<5%且RTT<50ms,但是可用带宽只有1MB,则当前网络为非正常网络,需要根据预先设置的丢包率、可用带宽、网络延迟以及分片大小的映射关系确定出当前网络对应的分片大小,这里,非正常网络对应的分片大小均小于预设分片大小;其中,可以通过实验数据和历史经验预先设置该映射关系和上述中的预设丢包率阈值、预设延迟阈值、预设带宽阈值以及预设分片大小。
S103、根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;
需要说明的是,根据目标上传文件的分片大小确定目标上传文件的上传模式的步骤,包括:
S1031、根据所述目标上传文件的分片大小,确定所述目标上传文件的分片大小是否小于预设分片大小;
S1032、若小于,则将所述目标上传文件的上传模式确定为串行上传模式;
S1033、若不小于,则将所述目标上传文件的上传模式确定为并行上传模式。
该步骤中,根据步骤S102确定出的目标上传文件的分片大小,确定该分片大小是否小于预设分片大小,预设分片大小为当前网络时正常网络时对应的分片大小,例如,预设分片大小为2MB,若确定出的目标上传文件的分片大小小于2MB,则上传模式为串行上传模式;若确定出的目标上传文件的分片大小不小于2MB,则上传模式为并行上传模式;这里,串行上传模式是将文件分片一个一个依次进行上传,并行上传模式是将多个文件分片同时进行上传。
S104、根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;
需要说明的是,通过以下步骤将目标上传文件切割分片:
S1041、若所述上传模式为串行上传模式,则将所述目标上传文件按照所述分片大小切割分片出一个文件分片以将该文件分片单独发送至所述服务器;
该步骤中,在上传模式是串行上传模式时,说明当前网络为非正常网络,将目标上传文件按照分片大小切割分片出一个文件分片进行发送,直至重新获取到的网络信息指示更新分片大小和上传模式为止。
示例性的,若网络信息中的可用带宽只有1MB,那么按照正常网络下的预设分片大小(假设2MB)肯定是不能一次发出去的,因此,若是预先设置的上传带宽占比是80%,实际的目标上传带宽为1MB×80%=0.8MB,此时,0.8MB<2MB,所以对应的分片大小应该小于0.8MB,同时,关闭并行上传模式,采用串行上传模式,即单一HTTP上传请求的形式。
S1042、若所述上传模式为并行上传模式,则根据预先设置的上传带宽占比确定所述并行上传模式的并发数,并将所述目标上传文件按照所述分片大小切割分片出并发数个文件分片以将所述并发数个文件分片同时发送至所述服务器。
该步骤中,在上传模式是并行上传模式时,说明当前网络为正常网络,将目标上传文件按照预设分片大小切割分片出并发数个文件分片同时进行发送,直至重新获取到的网络信息指示更新分片大小和上传模式为止。
需要说明的是,根据预先设置的上传带宽占比确定并行上传模式的并发数的步骤,包括:
1)、根据预先设置的上传带宽占比,将获取到的网络信息中的可用带宽和所述上传带宽占比的乘积确定为目标上传带宽;
2)、将所述目标上传带宽和所述分片大小的商确定为所述并行上传模式的并发数。
示例性的,上传带宽占比为Y(默认80%,预留20%,该比例可以根据历史经验和实验数据预先设置,如果全部带宽都用于上传可以设为100%),若获取到的网络信息中的可用带宽为20MB,所以目标上传带宽为20MB×80%=16MB,若预设分片大小为2MB,则并行上传模式的并发数为16MB÷2=8,由于并发数8>1,因此同时发出8个HTTP上传请求,如果目标上传文件比较大,就可以按照这个并行上传模式进行上传,直到上传完毕。
S105、针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
该步骤中,根据分片队列中的文件分片,每个文件分片组织一个HTTP上传请求后发送给服务器(云存储服务)进行云存储;再收集所有文件分片的HTTP上传请求的成功和失败情况,重新确定分片大小。
需要说明的是,将文件分片按照上传模式发送至服务器进行云存储之后,控制方法还包括:
1)、每隔预设时间间隔将网络嗅探包发送至服务器,获取所述服务器基于所述网络嗅探包反馈的当前网络的网络信息;
2)、根据所述服务器反馈的当前网络的网络信息确定是否更新所述目标上传文件的分片大小和所述目标上传文件的上传模式;
3)、若更新,则将上一次切割分片后剩余的目标上传文件按照更新后的分片大小和更新后的上传模式继续进行切割分片,并将重新切割分片得到的至少一个文件分片放入所述分片队列中按照所述更新后的上传模式发送至服务端进行云存储。
该步骤中,根据确定出的分片大小和上传模式,把目标上传文件切割分片。这里,并不是把整个目标上传文件都切割分片后放到分片队列中等待上传,是根据当前网络的网络信息和现有分片的发送情况动态进行切割分片,一方面避免占用过多内存空间,另一方面可以实时调整分片大小,保证文件上传的最高性价比。网络状况是动态变化的,所以在目标上传文件上传的过程中可能会出现即用串行上传模式又用并行上传模式进行上传;比如,最开始是正常网络,可用带宽足够,可以采用预设分片大小并行上传模式进行上传,当网络发生变化,可用带宽减小至1MB时,可以动态调整分片大小和上传模式,将分片大小改为0.8MB和串行上传模式进行上传。
示例性的,请参阅图3,图3为本申请实施例所提供一种文件上传流程的示意图,如图3中所示,客户端网络嗅探模块(网络嗅探模块C)会发送嗅探包至服务器中的服务端网络嗅探模块(网络嗅探模块S)(例如可以在文件上传的页面上点击开始上传的控件触发该操作),网络嗅探模块S收到嗅探包后,根据UDP包的接收情况计算当前网络的丢包情况和可用带宽,同时,根据TCP包的接收情况计算当前网络的延时情况,网络嗅探模块S将计算出的丢包情况、可用带宽以及延时情况汇总为网络信息发送给网络嗅探模块C,网络嗅探模块C收到网络嗅探模块S反馈的网络信息后,将网络信息发送给发送模块,发送模块根据特定算法计算出当前网络状态下文件的分片大小,根据该分片大小将文件进行切割分片,将切割分片后的每一个文件分片组包一个HTTP上传请求,发送给服务器(云存储服务)进行云存储,最后,服务器确认所有文件分片完成上传后,再进行文件合并。这里,若当前网络从正常网络变为非正常网络(例如网络异常断开)后,网络嗅探模块C和网络嗅探模块S会一直工作,当网络恢复后(即从非正常网络变为正常网络),之前的上传任务也会恢复,直到上传任务完成。网络嗅探模块C和网络嗅探模块S可以支持第三插件,可以是针对特定网络环境或者需求的自定义网络嗅探插件和增加网络参数指标,保证控制装置的灵活性,满足个性化需求。本实施例通过探测当前网络的网络信息动态修改目标上传文件的分片大小,能够高效利用当前网络的可用带宽,不仅在较好的网络状况下完成快速上传,还能在弱网环境下保证上传文件正常进行,这对于保证云存储服务的高效性和健壮性都有很大的提升作用。
本申请实施例提供的一种文件上传的控制方法,所述控制方法包括:响应于文件上传的触控操作,获取目标上传文件;根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
这样,采用本申请提供的技术方案能够通过获取当前网络的网络信息,确定目标上传文件的分片大小和上传模式,根据确定出的分片大小和上传模式对目标上传文件切割分片,将切割分片后的文件分片发送至服务器,充分利用了当前的网络环境,提高了弱网环境下文件上传的成功率。
基于同一申请构思,本申请实施例中还提供了与上述实施例提供一种文件上传的控制方法对应的一种文件上传的控制装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例一种文件上传的控制方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图4、图5,图4为本申请实施例所提供的一种文件上传的控制装置的结构图之一,图5为本申请实施例所提供的一种文件上传的控制装置的结构图之二。如图4中所示,所述控制装置410包括:
响应模块411,用于响应于文件上传的触控操作,获取目标上传文件;
第一确定模块412,用于根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;
第二确定模块413,用于根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;
处理模块414,用于根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;
发送模块415,用于针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
可选的,所述网络信息包括丢包率、可用带宽以及网络延迟;所述第一确定模块412在用于根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小时,所述第一确定模块412具体用于:
根据获取到的当前网络的网络信息,确定是否满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件;
若满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为正常网络,并将预设分片大小确定为所述目标上传文件的分片大小;
若不满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为非正常网络,并根据获取到的丢包率、可用带宽以及网络延迟,在预先设置的丢包率、可用带宽、网络延迟以及分片大小的映射关系中,确定出所述目标上传文件对应的分片大小。
可选的,所述第二确定模块413在用于根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式时,所述第二确定模块413具体用于:
根据所述目标上传文件的分片大小,确定所述目标上传文件的分片大小是否小于预设分片大小;
若小于,则将所述目标上传文件的上传模式确定为串行上传模式;
若不小于,则将所述目标上传文件的上传模式确定为并行上传模式。
可选的,所述处理模块414在用于将所述目标上传文件切割分片时,所述处理模块414具体用于:
若所述上传模式为串行上传模式,则将所述目标上传文件按照所述分片大小切割分片出一个文件分片以将该文件分片单独发送至所述服务器;
若所述上传模式为并行上传模式,则根据预先设置的上传带宽占比确定所述并行上传模式的并发数,并将所述目标上传文件按照所述分片大小切割分片出并发数个文件分片以将所述并发数个文件分片同时发送至所述服务器。
可选的,所述处理模块414在用于根据预先设置的上传带宽占比确定所述并行上传模式的并发数时,所述处理模块414具体用于:
根据预先设置的上传带宽占比,将获取到的网络信息中的可用带宽和所述上传带宽占比的乘积确定为目标上传带宽;
将所述目标上传带宽和所述分片大小的商确定为所述并行上传模式的并发数。
可选的,如图5所示,所述控制装置410还包括获取模块416,所述获取模块416用于:
根据获取到的所述目标上传文件,确定当前网络是否可用;
若可用,则将网络嗅探包发送至服务器;其中,所述网络嗅探包包括服务器用于计算当前网络的丢包率和可用带宽的UDP嗅探包以及用于计算当前网络的网络延迟的TCP嗅探包;
获取所述服务器基于所述网络嗅探包反馈的当前网络的包括丢包率、可用带宽和网络延迟的网络信息。
可选的,所述控制装置410还包括更新模块417,所述更新模块417用于:
每隔预设时间间隔将网络嗅探包发送至服务器,获取所述服务器基于所述网络嗅探包反馈的当前网络的网络信息;
根据所述服务器反馈的当前网络的网络信息确定是否更新所述目标上传文件的分片大小和所述目标上传文件的上传模式;
若更新,则将上一次切割分片后剩余的目标上传文件按照更新后的分片大小和更新后的上传模式继续进行切割分片,并将重新切割分片得到的至少一个文件分片放入所述分片队列中按照所述更新后的上传模式发送至服务端进行云存储。
本申请实施例提供的一种文件上传的控制装置,所述控制装置包括:响应模块,用于响应于文件上传的触控操作,获取目标上传文件;第一确定模块,用于根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;第二确定模块,用于根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;处理模块,用于根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;发送模块,用于针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
这样,采用本申请提供的技术方案能够通过获取当前网络的网络信息,确定目标上传文件的分片大小和上传模式,根据确定出的分片大小和上传模式对目标上传文件切割分片,将切割分片后的文件分片发送至服务器,充分利用了当前的网络环境,提高了弱网环境下文件上传的成功率。
请参阅图6,图6为本申请实施例所提供的一种电子设备的结构示意图。如图6中所示,所述电子设备600包括处理器610、存储器620和总线630。
所述存储器620存储有所述处理器610可执行的机器可读指令,当电子设备600运行时,所述处理器610与所述存储器620之间通过总线630通信,所述机器可读指令被所述处理器610执行时,可以执行如上述图1以及图2所示方法实施例中的文件上传的控制方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的文件上传的控制方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种文件上传的控制方法,其特征在于,所述控制方法包括:
响应于文件上传的触控操作,获取目标上传文件;
根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;
根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;
根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;
针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
2.根据权利要求1所述的控制方法,其特征在于,所述网络信息包括丢包率、可用带宽以及网络延迟;所述根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小的步骤,包括:
根据获取到的当前网络的网络信息,确定是否满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件;
若满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为正常网络,并将预设分片大小确定为所述目标上传文件的分片大小;
若不满足所述网络信息中的丢包率小于预设丢包率阈值、网络延迟小于预设延迟阈值且可用带宽不小于预设带宽阈值的条件,则将当前网络确定为非正常网络,并根据获取到的丢包率、可用带宽以及网络延迟,在预先设置的丢包率、可用带宽、网络延迟以及分片大小的映射关系中,确定出所述目标上传文件对应的分片大小。
3.根据权利要求1所述的控制方法,其特征在于,所述根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式的步骤,包括:
根据所述目标上传文件的分片大小,确定所述目标上传文件的分片大小是否小于预设分片大小;
若小于,则将所述目标上传文件的上传模式确定为串行上传模式;
若不小于,则将所述目标上传文件的上传模式确定为并行上传模式。
4.根据权利要求1所述的控制方法,其特征在于,通过以下步骤将所述目标上传文件切割分片:
若所述上传模式为串行上传模式,则将所述目标上传文件按照所述分片大小切割分片出一个文件分片以将该文件分片单独发送至所述服务器;
若所述上传模式为并行上传模式,则根据预先设置的上传带宽占比确定所述并行上传模式的并发数,并将所述目标上传文件按照所述分片大小切割分片出并发数个文件分片以将所述并发数个文件分片同时发送至所述服务器。
5.根据权利要求4所述的控制方法,其特征在于,所述根据预先设置的上传带宽占比确定所述并行上传模式的并发数的步骤,包括:
根据预先设置的上传带宽占比,将获取到的网络信息中的可用带宽和所述上传带宽占比的乘积确定为目标上传带宽;
将所述目标上传带宽和所述分片大小的商确定为所述并行上传模式的并发数。
6.根据权利要求1所述的控制方法,其特征在于,所述确定所述目标上传文件的分片大小之前,通过以下步骤获取当前网络的网络信息:
根据获取到的所述目标上传文件,确定当前网络是否可用;
若可用,则将网络嗅探包发送至服务器;其中,所述网络嗅探包包括服务器用于计算当前网络的丢包率和可用带宽的UDP嗅探包以及用于计算当前网络的网络延迟的TCP嗅探包;
获取所述服务器基于所述网络嗅探包反馈的当前网络的包括丢包率、可用带宽和网络延迟的网络信息。
7.根据权利要求1所述的控制方法,其特征在于,所述将所述文件分片按照所述上传模式发送至服务器进行云存储之后,所述控制方法还包括:
每隔预设时间间隔将网络嗅探包发送至服务器,获取所述服务器基于所述网络嗅探包反馈的当前网络的网络信息;
根据所述服务器反馈的当前网络的网络信息确定是否更新所述目标上传文件的分片大小和所述目标上传文件的上传模式;
若更新,则将上一次切割分片后剩余的目标上传文件按照更新后的分片大小和更新后的上传模式继续进行切割分片,并将重新切割分片得到的至少一个文件分片放入所述分片队列中按照所述更新后的上传模式发送至服务端进行云存储。
8.一种文件上传的控制装置,其特征在于,所述控制装置包括:
响应模块,用于响应于文件上传的触控操作,获取目标上传文件;
第一确定模块,用于根据获取到的当前网络的网络信息,确定所述目标上传文件的分片大小;
第二确定模块,用于根据所述目标上传文件的分片大小确定所述目标上传文件的上传模式;
处理模块,用于根据所述分片大小和所述上传模式将所述目标上传文件切割分片,将所述切割分片后的至少一个文件分片放入至分片队列中进行发送;
发送模块,用于针对于所述分片队列中的每个文件分片,将所述文件分片按照所述上传模式发送至服务器进行云存储。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至7任一所述的文件上传的控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的文件上传的控制方法的步骤。
CN202210814380.7A 2022-07-11 2022-07-11 一种文件上传的控制方法、装置、电子设备及存储介质 Pending CN115190117A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210814380.7A CN115190117A (zh) 2022-07-11 2022-07-11 一种文件上传的控制方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210814380.7A CN115190117A (zh) 2022-07-11 2022-07-11 一种文件上传的控制方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115190117A true CN115190117A (zh) 2022-10-14

Family

ID=83516906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210814380.7A Pending CN115190117A (zh) 2022-07-11 2022-07-11 一种文件上传的控制方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115190117A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160057199A1 (en) * 2014-08-21 2016-02-25 Facebook, Inc. Systems and methods for transmitting a media file in multiple portions
CN106067896A (zh) * 2016-05-30 2016-11-02 刘华英 文件续传方法和装置
US20190158936A1 (en) * 2016-07-22 2019-05-23 Huawei Technologies Co., Ltd. Method and Apparatus for Downloading Streaming Media File Fragment and Terminal
CN109831506A (zh) * 2019-01-31 2019-05-31 百度在线网络技术(北京)有限公司 文件上传方法、装置、终端、服务器及可读存储介质
CN111031110A (zh) * 2019-11-29 2020-04-17 山东英信计算机技术有限公司 一种文件上传方法、装置及电子设备和存储介质
CN114221954A (zh) * 2021-12-07 2022-03-22 中国电信股份有限公司 文件传输方法及装置、电子设备及存储介质
CN114338653A (zh) * 2021-12-29 2022-04-12 中国电信股份有限公司 文件断点续传方法及装置
CN114650277A (zh) * 2022-03-11 2022-06-21 中国工商银行股份有限公司 一种文件传输的控制方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160057199A1 (en) * 2014-08-21 2016-02-25 Facebook, Inc. Systems and methods for transmitting a media file in multiple portions
CN106067896A (zh) * 2016-05-30 2016-11-02 刘华英 文件续传方法和装置
US20190158936A1 (en) * 2016-07-22 2019-05-23 Huawei Technologies Co., Ltd. Method and Apparatus for Downloading Streaming Media File Fragment and Terminal
CN109831506A (zh) * 2019-01-31 2019-05-31 百度在线网络技术(北京)有限公司 文件上传方法、装置、终端、服务器及可读存储介质
CN111031110A (zh) * 2019-11-29 2020-04-17 山东英信计算机技术有限公司 一种文件上传方法、装置及电子设备和存储介质
CN114221954A (zh) * 2021-12-07 2022-03-22 中国电信股份有限公司 文件传输方法及装置、电子设备及存储介质
CN114338653A (zh) * 2021-12-29 2022-04-12 中国电信股份有限公司 文件断点续传方法及装置
CN114650277A (zh) * 2022-03-11 2022-06-21 中国工商银行股份有限公司 一种文件传输的控制方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王薇薇等: "《开源云计算:部署、应用、运维》", 30 June 2021, 机械工业出版社, pages: 102 *

Similar Documents

Publication Publication Date Title
US10936560B2 (en) Methods and devices for data de-duplication
US11126590B2 (en) Data processing method and device
JP2014514618A (ja) データ管理方法及びデータ管理システム
CN109086307B (zh) 文件处理的方法及装置
CN110297680B (zh) 一种传输虚拟桌面图像的方法及装置
CN110213623B (zh) 视频上传方法、视频上传装置及计算机可读存储介质
JP2011175357A5 (ja) 管理装置及び管理プログラム
CN111221561B (zh) 流表更新方法、装置、系统、计算机设备及存储介质
CN107391761B (zh) 一种基于重复数据删除技术的数据管理方法及装置
CN109831508B (zh) 一种缓存方法及设备、存储介质
CN110324406B (zh) 一种获取业务数据的方法和云服务系统
CN112367345A (zh) 数据处理方法、服务端设备及计算机可读存储介质
EP3312727A1 (en) Differential data backup method and device
CN113220644B (zh) 一种文件处理方法、装置、设备及存储介质
CN115190117A (zh) 一种文件上传的控制方法、装置、电子设备及存储介质
JP7075077B2 (ja) バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
CN107741994B (zh) 一种数据更新方法及装置
CN117579611A (zh) 数据传输方法、装置、存储介质及电子装置
EP3905706A1 (en) Definition switching algorithm selection method and system, and device and medium
CN109697136B (zh) 一种数据恢复方法、装置及系统
CN106293996B (zh) 数据同步方法、主设备、备份设备和系统
CN108965463B (zh) 一种文件传输方法、装置和系统
JP6940771B2 (ja) データ送信プログラム、データ送信装置、及びデータ送信方法
CN111245949A (zh) 文件归档传输方法、装置及设备
CN105376285A (zh) 网络储存去重方法及服务器

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