CN110336871A - 一种文件处理方法、装置、存储介质及电子设备 - Google Patents
一种文件处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN110336871A CN110336871A CN201910583676.0A CN201910583676A CN110336871A CN 110336871 A CN110336871 A CN 110336871A CN 201910583676 A CN201910583676 A CN 201910583676A CN 110336871 A CN110336871 A CN 110336871A
- Authority
- CN
- China
- Prior art keywords
- file
- transmission
- transmitted
- cache directory
- data
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种文件处理方法、装置、存储介质及电子设备。该方法包括:响应于文件传输请求,检测缓存目录中是否有待传输文件数据;若是,则根据所述待传输文件数据确定待传输文件的传输进度;根据待传输文件数据的传输进度确定续传起始位置;根据所述续传起始位置,对所述待传输文件进行断点续传。通过运行本申请所提供的技术方案,可以实现通过开源框架实现文件上传、文件下载和文件管理的核心功能,也提供断点续传和大文件传输的功能,并支持开发者完全自定义本地沙盒对文件数据的CRUD功能。
Description
技术领域
本申请实施例涉及文件传输技术领域,尤其涉及一种文件处理方法、装置、存储介质及电子设备。
背景技术
对于移动终端来说,无论是开发还是使用过程中,对于文件的处理,尤其是文件的上传和下载等传输处理,是最常见的数据处理方式。
目前的iOS(苹果公司开发的移动操作系统),以及其他操作系统,涉及到文件数据的上传、下载和文件管理等功能,通常这些功能都是利用原生系统API实现的。
在实际开发和使用过程中,如果仅仅只是简单的上传和下载,可以通过原生API对象初始化和相应的代理方法来实现。但是如果是大文件的传输,就需要支持断点续传,这就涉及到比较繁琐的文件输入输出流和文件历史记录,过大的文件频繁IO甚至还需要开发者手动管理相关内存释放等问题。然而,目前主流的开源框架不仅功能单一,只是简单的原生API封装。不支持自定义的文件沙盒管理和内存管理,同时也不提供断点续传和大文件传输的功能。
发明内容
本申请实施例提供一种文件处理方法、装置、存储介质及电子设备,以实现通过开源框架实现文件上传、文件下载和文件管理的核心功能,也提供断点续传和大文件传输的功能,并支持开发者完全自定义本地沙盒对文件数据的CRUD功能(用在描述软件系统中数据库或者持久层的基本操作功能,如增加、查询、更新和删除等)。
第一方面,本申请实施例提供了一种文件处理方法,该方法包括:
响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
若是,则根据所述待传输文件数据确定待传输文件的传输进度;
根据待传输文件数据的传输进度确定续传起始位置;
根据所述续传起始位置,对所述待传输文件进行断点续传。
进一步的,在检测文件传输任务的任务对象是否存在于预先设置的缓存目录中之前,所述方法还包括:
响应于文件传输请求,检测是否存在缓存目录;
若不存在,则创建缓存目录。
进一步的,在检测缓存目录中是否有待传输文件数据之后,所述方法还包括:
若所述文件传输请求为文件下载请求,且缓存目录中不存在待传输文件数据,则将待下载文件下载至所述缓存目录中;
若所述文件传输请求为文件上传请求,且缓存目录中不存在待传输文件数据,则将待上传文件拷贝至所述缓存目录中,用于对缓存目录中的待上传文件进行上传操作。
进一步的,在根据所述续传起始位置,对所述待传输文件进行断点续传之后,所述方法还包括:
若检测到传输停止时,则确定待传输文件传输是否完成;
若传输未完成,则在待传输文件的数据中记录传输进度。
进一步的,根据待传输文件数据的传输进度确定续传起始位置,包括:
若文件传输请求为文件下载请求,则通过待传输文件数据的已写入字节长度,设置文件下载请求的进度值,供服务器根据所述进度值进行续传;
若当文件传输请求为文件上传请求,则通过待传输文件数据保存的已上传字节长度,以及已上传进度值,确定待上传文件的续传起始位置。
进一步的,所述方法还包括:
运用预设的文件管理字段,在文件传输过程中对文件进行管理操作,其中,管理操作包括如下至少一项:增加操作、查询操作、更新操作和删除操作。
第二方面,本申请实施例提供了一种文件处理装置,该装置包括:
待传输文件数据检测模块,用于响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
传输进度确定模块,用于若所述待传输文件数据检测模块检测为是,则根据所述待传输文件数据确定待传输文件的传输进度;
续传起始位置确定模块,用于根据待传输文件数据的传输进度确定续传起始位置;
断点续传执行模块,用于根据所述续传起始位置,对所述待传输文件进行断点续传。
进一步的,所述装置还包括:
缓存目录检测模块,用于响应于文件传输请求,检测是否存在缓存目录;
缓存目录创建模块,用于若所述缓存目录检测模块检测为不存在,则创建缓存目录。
进一步的,所述装置还包括:
下载管理模块,用于若所述文件传输请求为文件下载请求,且缓存目录中不存在待传输文件数据,则将待下载文件下载至所述缓存目录中;
上传管理模块,用于若所述文件传输请求为文件上传请求,且缓存目录中不存在待传输文件数据,则将待上传文件拷贝至所述缓存目录中,用于对缓存目录中的待上传文件进行上传操作。
进一步的,所述装置还包括:
传输完成检测模块,用于若检测到传输停止时,则确定待传输文件传输是否完成;
传输进度记录模块,用于若所述传输完成检测模块检测为传输未完成,则在待传输文件的数据中记录传输进度。
进一步的,所述续传起始位置确定模块包括:
文件下载起始位置确定单元,用于若文件传输请求为文件下载请求,则通过待传输文件数据的已写入字节长度,设置文件下载请求的进度值,供服务器根据所述进度值进行续传;
文件上传起始位置确定单元,用于若当文件传输请求为文件上传请求,则通过待传输文件数据保存的已上传字节长度,以及已上传进度值,确定待上传文件的续传起始位置。
进一步的,所述装置还包括:
文件管理模块,用于运用预设的文件管理字段,在文件传输过程中对文件进行管理操作,其中,管理操作包括如下至少一项:增加操作、查询操作、更新操作和删除操作。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器运行时实现如本申请实施例所述的文件处理方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器运行所述计算机程序时实现如本申请实施例所述的文件处理方法。
本申请实施例所提供的技术方案,通过响应于文件传输请求,检测缓存目录中是否有待传输文件数据;若是,则根据所述待传输文件数据确定待传输文件的传输进度;根据待传输文件数据的传输进度确定续传起始位置;根据所述续传起始位置,对所述待传输文件进行断点续传。通过采用本申请所提供的技术方案,可以实现通过开源框架实现文件上传、文件下载和文件管理的核心功能,也提供断点续传和大文件传输的功能,并支持开发者完全自定义本地沙盒对文件数据的CRUD功能。
附图说明
图1是本申请实施例一提供的文件处理方法的流程图;
图2是本申请实施例二提供的文件处理方法的流程示意图;
图3是本申请实施例三提供的文件处理装置的结构示意图;
图4是本申请实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本申请实施例一提供的文件处理方法的流程图,本实施例可适于文件上传、下载及管理等情况,该方法可以由本申请实施例所提供的文件处理装置运行,该装置可以由软件和/或硬件的方式来实现,并可集成于电子设备中。
如图1所示,所述文件处理方法包括:
S110、响应于文件传输请求,检测缓存目录中是否有待传输文件数据。
其中,文件传输请求可以是基于用户的操作指令发出的。例如用户通过点击等操作指令确定一个文件下载或者上传的请求,并发送该请求至服务器。其中用户可以是开发者,也可以是移动终端等电子设备的使用人员。
其中,缓存目录为预先设置的,为了进行文件处理所创建的目录,缓存目录可以占用一定量的缓存资源,用于在文件处理的过程中,对待处理的文件或者过程文件进行存储的目录。该目录下可以同时含有待上传文件、待下载文件以及待管理文件,如格式转换等管理,还可以针对待上传文件、待下载文件以及待管理文件这三类操作分别设置在三个不同的缓存目录下。
在本实施例中,待传输文件数据可以是待传输文件完整的数据,还可以是待传输文件的部分数据。例如,在文件下载过程中,可以将待传输文件,此处即为待下载文件的已下载数据存储在该缓存目录中。在文件上传过程中,可以将待上传文件从其原有的文件目录中,拷贝至缓存目录中,进而从该缓存目录中进行文件的上传操作。这样设置的好处是可以避免由于用户不了解该文件是否上传完成,对该文件的目录进行更改或者对该文件进行删除等处理时,影响对该文件的正常上传,导致上传被中断的情况发生。
在本实施例中,具体的,可以通过对缓存目录中是否含有待传输文件的文件名称进行识别,来确定待传输文件是否已经被开启传输,或者可以通过传输形式确定获取待传输文件的头文件,该头文件可以包括文件的名称、大小、文件后缀以及其他属性等,可以与待传输文件的来确定待传输文件是否已经被开启传输。这里所说的已经被传输,可以是已经传输完成,也可以是未传输完成,如在传输过程中中断。
在本实施例中,可选的,在检测文件传输任务的任务对象是否存在于预先设置的缓存目录中之前,所述方法还包括:响应于文件传输请求,检测是否存在缓存目录;若不存在,则创建缓存目录。其中,如果在接收到文件传输请求后,发现不存在缓存目录,则可以直接创建缓存目录。缓存目录的创建位置可以是移动终端的缓存区域。由于文件传输过程中,如下载,一般用户会选择一个目标目录,如上传,一般用户会从目标目录中上传至服务器。这样设置的一个大问题就是当需要进行断点续传或者其他操作时,总是需要先定位文件的位置,而且入股需要确定该文件是否已经被下载,需要对整个终端设备的所有存储区域进行查找,这时就需要消耗大量的时间成本。而如果待传输文件的目录确定,则可以在每次接收到文件传输任务时,优先查看该缓存目录中是否存在。从而可以提高对待传输文件进行断点续传的效率。
在本实施例中,可选的,在检测缓存目录中是否有待传输文件数据之后,所述方法还包括:若所述文件传输请求为文件下载请求,且缓存目录中不存在待传输文件数据,则将待下载文件下载至所述缓存目录中;若所述文件传输请求为文件上传请求,且缓存目录中不存在待传输文件数据,则将待上传文件拷贝至所述缓存目录中,用于对缓存目录中的待上传文件进行上传操作。其中,若为文件下载请求,且缓存目录中不存在待传输文件数据,则可以将所下载的数据存储在缓存目录中。直至该待下载文件下载完成后,可以根据用户选择的或者应用程序默认的目标目录,将下载完成的待下载文件拷贝至目标目录中。若为文件上传请求,且缓存目录中不存在待传输文件数据,则可以将待上传文件的从当前存储位置拷贝至缓存目录中,并从缓存目录中对该待上传文件进行上传处理。这样设置的好处是可以在下载过程中快速确认是否已经对文件进行过下载操作,避免重复下载;并且可以在文件上传过程中避免用户对待上传文件的删除,移动至其他目录等操作而影响文件上传,从而提高文件处理的稳定性和效率。
S120、若是,则根据所述待传输文件数据确定待传输文件的传输进度。
其中,根据待传输文件数据确定待传输文件的传输进度,可以是根据待传输文件数据的大小来确定待传输文件的传输进度。还可以是在文件传输过程中,实时记录待传输文件的进度,根据待传输文件数据其当前的传输进度记录值。其中,对于传输文件的进度所记录的值可以记录在传输文件数据内,还可以通过其他监听方式记录在外部,通过识别当前缓存目录中的目标传输文件数据,并确定所记录的目标传输文件的当前传输进度。
S130、根据待传输文件数据的传输进度确定续传起始位置。
其中,可以在得到待传输文件的传输进度后,根据该进度,例如50%,来确定对该待传输文件进行续传的起始位置。其中续传起始位置可以是相对于整个待传输文件的位置。确定续传起始位置的好处是可以达到所传输的文件数据可以无缝拼接,无需复杂的重复计算。
S140、根据所述续传起始位置,对所述待传输文件进行断点续传。
在确定续传起始位置之后,可以根据该起始位置,对待传输文件进行断点续传。例如进行文件上传,可以根据已经上传的数据量确定当前需要进行上传的起始位置,进而进行断点续传。这样设置可以无需对整个待传输文件进行重新上传或者下载,可以应对大文件传输以及文件传输过程中发生中断等情况,节省了网络数据传输的负担,提高数据传输效率。
在本实施例中,可选的,在根据所述续传起始位置,对所述待传输文件进行断点续传之后,所述方法还包括:若检测到传输停止时,则确定待传输文件传输是否完成;若传输未完成,则在待传输文件的数据中记录传输进度。其中,文件传输停止,可以是由于应用程序的损毁而停止,内存达到一定状态而停止,还可以是应用程序被切换至后台运行或者退出而停止。当检测到传输停止时,则可以通过判断该文件的传输是否完成,来确定是否需要对该文件进行传输进度的记录或者是其他操作。可以理解的,若传输完成,则可以生成相应的通知信息,告知用户该文件已经传输完成。这样设置的好处是可以根据待传输文件的传输进度,来确定是否需要在待传输文件的数据中记录传输进度。
本申请实施例所提供的技术方案,通过响应于文件传输请求,检测缓存目录中是否有待传输文件数据;若是,则根据所述待传输文件数据确定待传输文件的传输进度;根据待传输文件数据的传输进度确定续传起始位置;根据所述续传起始位置,对所述待传输文件进行断点续传。通过采用本申请所提供的技术方案,可以实现通过开源框架实现文件上传、文件下载和文件管理的核心功能,也提供断点续传和大文件传输的功能,并支持开发者完全自定义本地沙盒对文件数据的CRUD功能。
在上述各技术方案的基础上,可选的,根据待传输文件数据的传输进度确定续传起始位置,包括:若文件传输请求为文件下载请求,则通过待传输文件数据的已写入字节长度,设置文件下载请求的进度值,供服务器根据所述进度值进行续传;若当文件传输请求为文件上传请求,则通过待传输文件数据保存的已上传字节长度,以及已上传进度值,确定待上传文件的续传起始位置。其中,在文件下载过程中,可以通过待传输文件数据的已写入字节长度,来设置文件下载请求的进度值。例如该文件的大小为80kB,而目前已经写入的字节长度为40kB,则可以确定已下载文件的进度值为50%。并将该进度值反馈给服务器,用于供服务器来确定从什么位置开始进行续传。在文件上传过程中,由于文件在本地的缓存目录中,则可以根据已上传的进度值,来确定从什么位置开始进行续传。具体的,已上传的进度值可以存储在待上传文件的数据中,还可以通过其他形式进行存储。由于待上传文件在本地端,所以可以根据进度值确定需要从什么位置进行续传。本技术方案可以将待传输文件的进度值确定后,根据所确定的进度值进一步的确定续传的位置。这样设置的好处是可以避免对待传输文件的内容的重复传输。
在上述各技术方案的基础上,可选的,所述方法还包括:运用预设的文件管理字段,在文件传输过程中对文件进行管理操作,其中,管理操作包括如下至少一项:增加操作、查询操作、更新操作和删除操作。在本实施例中,预设的文件管理字段可以设置在全局内存里面,可以通过调用全局内存中的文件管理字段对文件进行管理,这样可以避免消息转发带来的时间损耗。
实施例二
为了能够让本领域技术人员更加清楚的了解本申请公开的技术方案,本申请还提供了一种优选的实施方式。
图2是本申请实施例二提供的文件处理方法的流程示意图。如图2所示,所述文件处理方法包括三大主线,分别是文件管理、文件上传和文件下载。
如图所示,YMMFileTransferLib可以理解为是一种文件传输工具库。在开始之后通过文件传输工具库提供三种业务服务,分别为文件管理、文件上传和文件下载。对于文件管理而言,首先是判断文件是否存在,并且可以根据CRUD执行相应的接口方法。对于文件上传而言,首先是判断队列是否以存在此任务,如果是,则Return(返回文件传输进度),如果否,则在当前队列中添加上传任务,并行队列启动,执行异步任务。对于文件下载而言,与文件上传相类似,可以首先判断当前队列是否存在此任务,如果存在,则Return(返回文件传输进度),如果不存在,则添加下载任务,并行队列启动,执行异步任务。进而实现与CloudServer(云服务器)之间的文件传输。
更加具体的,可以参照如下步骤实现:
一,文件下载。
1、根据业务方传入url标识符确保文件资源的唯一性,构建NSMutableURLRequest实例请求,这里会首先从本地下载历史记录缓存文件,kv存储模型数据,来获取是否有此次任务对象,如果有,则取出该对象,通过其保存的已写入bytes长度,设置HTTP头部的range值(进度值,可以用0至1之间的数字表示),确保可以无缝续传下载。
2、继承NSOperation任务操作,实现NSURLSessionDataDelegate和NSURLSessionTaskDelegate,作用是通过接受服务器的初始response,为接下来的数据任务操作做准备,并且时刻监听数据传输过程,每次接收到部分文件数据后,通过NSInputStream和NSOutputStream持续写入本地文件保存,直到收到服务端回调数据停止传输,则根据NSError判断数据是否传输完毕,再通过NSNotification分别发出对应通知。
3、利用GCD(iOS原生API提供的一个用来处理多核并发的底层框架)强大的并发线程处理能力,实现一个dispatch_queue_t作为并发子线程,保存进度回调block和数据下载完成block,以保证业务方可以时刻监听到数据实时进度回调。
其中,整个下载过程,设计下载任务对象的状态包括初始、等待、下载中、暂停、完成、失败,同时也记录保存了文件下载缓存目录、下载完成预计正式目录、资源绝对url、已写入bytes长度、总bytes长度、进度block等信息,所有的对象数据,则是通过监听App应用程序的系统生命周期通知,包括销毁、内存警告、失去活跃、进入活跃、进入后台等,来实现下载队列暂停、取消等动作,然后将所有的下载任务持有的内存对象写入本地沙盒文件实现数据持久。
二,文件上传。
1、实现全局上传模块的单例管理器,并在初始化的时候,利用NSOperationQueue实现一个并发上传队列,作用是持有不定数量的上传任务对象和控制最大队列并发个数。
2、根据传入本地资源文件的相对路径url,确保构建上传任务对象唯一性,此处同样会从本地上传历史记录缓存文件,通过kv存储模型获取是否包含此对象,若包含且上传状态非完成,则赋值NSData和文件类型,构建NSBlockOperation,添加到a步骤里的并发队列里并异步启动执行。
3、NSBlockOperation完全封装了上传请求对象唤起事件,内部实现则是构建了上传数据的基本数据模型,包括二进制文件数据元、文件类型、是否需要压缩等信息,以确保可以正常填充上传流程的入参请求。
4、首先向我们自己服务端发起预上传凭证请求,来获取阿里oss的库Token和文件预上传信息格式列表,其中Token对象就包含了bucketName、accessId、accessKey、token、时间戳、域名地址等秘钥信息,决定此次上传云服务器路径和鉴权信息,文件预上传信息格式列表则包含了业务key、文件key等格式信息。
5、拿到d步骤的必要参数之后,接入AliyunOSSiOS SDK,构建OSSTask,透传到SDK层,通过指定的上传方法向阿里云的云存储服务器上传数据元,并通过回调事件不断监听上传进度和状态更新等信息。
其中,整个上传过程,设计上传任务对象的状态包括未上传、上传中、上传取消、上传暂停、上传失败,同样是通过监听App应用程序的系统生命周期通知,来实现上传队列暂停、取消等动作,然后实现内地对象写入本地沙盒实现数据持久,这一点的思路跟下载子模块的设计思路十分相近。
三,文件管理。
整个文件管理模块是基于iOS典型沙盒目录的特点,提供给上传子模块和下载子模块关于本地文件数据的CRUD解决方案。
其中,可以利用static inline内联函数特性,以空间换取时间,封装会被多次调用的本地文件CRUD常见函数功能,通过业务方定义不同场景枚举值,开辟不同业务模块的子文件夹功能,同时提供给业务方灵活自定义子文件目录的方式。
本技术方案实现了iOS移动端关于文件数据的传输和管理等核心功能闭环,省去了移动开发者大量繁琐的工作量,同时减少了不必要的BUG隐患。
通过采用上述技术方案,可以实现文件数据的上传、下载、管理三大核心功能闭环,且提供断点续传和大文件等多种能力,彻底解放业务方关于文件数据传输和管理的需求痛点,同时开发者也完全无需关心具体实现过程,本发明模块已实现低耦合高内聚,无冗余依赖,开发者只需要根据需要依赖本模块,开箱即用热插拔,无副作用。
实施例三
图3是本申请实施例三提供的文件处理装置的结构示意图。如图3所示,所述文件处理装置,包括:
待传输文件数据检测模块310,用于响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
传输进度确定模块320,用于若所述待传输文件数据检测模块检测为是,则根据所述待传输文件数据确定待传输文件的传输进度;
续传起始位置确定模块330,用于根据待传输文件数据的传输进度确定续传起始位置;
断点续传执行模块340,用于根据所述续传起始位置,对所述待传输文件进行断点续传。
本申请实施例所提供的技术方案,通过响应于文件传输请求,检测缓存目录中是否有待传输文件数据;若是,则根据所述待传输文件数据确定待传输文件的传输进度;根据待传输文件数据的传输进度确定续传起始位置;根据所述续传起始位置,对所述待传输文件进行断点续传。通过采用本申请所提供的技术方案,可以实现通过开源框架实现文件上传、文件下载和文件管理的核心功能,也提供断点续传和大文件传输的功能,并支持开发者完全自定义本地沙盒对文件数据的CRUD功能。
在上述各技术方案的基础上,可选的,所述装置还包括:
缓存目录检测模块,用于响应于文件传输请求,检测是否存在缓存目录;
缓存目录创建模块,用于若所述缓存目录检测模块检测为不存在,则创建缓存目录。
在上述各技术方案的基础上,可选的,所述装置还包括:
下载管理模块,用于若所述文件传输请求为文件下载请求,且缓存目录中不存在待传输文件数据,则将待下载文件下载至所述缓存目录中;
上传管理模块,用于若所述文件传输请求为文件上传请求,且缓存目录中不存在待传输文件数据,则将待上传文件拷贝至所述缓存目录中,用于对缓存目录中的待上传文件进行上传操作。
在上述各技术方案的基础上,可选的,所述装置还包括:
传输完成检测模块,用于若检测到传输停止时,则确定待传输文件传输是否完成;
传输进度记录模块,用于若所述传输完成检测模块检测为传输未完成,则在待传输文件的数据中记录传输进度。
在上述各技术方案的基础上,可选的,所述续传起始位置确定模块包括:
文件下载起始位置确定单元,用于若文件传输请求为文件下载请求,则通过待传输文件数据的已写入字节长度,设置文件下载请求的进度值,供服务器根据所述进度值进行续传;
文件上传起始位置确定单元,用于若当文件传输请求为文件上传请求,则通过待传输文件数据保存的已上传字节长度,以及已上传进度值,确定待上传文件的续传起始位置。
在上述各技术方案的基础上,可选的,所述装置还包括:
文件管理模块,用于运用预设的文件管理字段,在文件传输过程中对文件进行管理操作,其中,管理操作包括如下至少一项:增加操作、查询操作、更新操作和删除操作。
上述产品可运行本申请任意实施例所提供的方法,具备运行方法相应的功能模块和有益效果。
实施例四
本申请实施例还提供一种包含计算机可运行指令的存储介质,所述计算机可运行指令在由计算机处理器运行时用于运行一种文件处理方法,该方法包括:
响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
若是,则根据所述待传输文件数据确定待传输文件的传输进度;
根据待传输文件数据的传输进度确定续传起始位置;
根据所述续传起始位置,对所述待传输文件进行断点续传。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被运行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于运行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器运行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可运行指令的存储介质,其计算机可运行指令不限于如上所述的文件处理操作,还可以运行本申请任意实施例所提供的文件处理方法中的相关操作。
实施例五
本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的文件处理装置。图4是本申请实施例五提供的一种电子设备的结构示意图。如图4所示,本实施例提供了一种电子设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器420运行,使得所述一个或多个处理器420实现本申请实施例所提供的文件处理方法,该方法包括:
响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
若是,则根据所述待传输文件数据确定待传输文件的传输进度;
根据待传输文件数据的传输进度确定续传起始位置;
根据所述续传起始位置,对所述待传输文件进行断点续传。
当然,本领域技术人员可以理解,处理器420还可以实现本申请任意实施例所提供的文件处理方法的技术方案。
图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,该电子设备400包括处理器420、存储装置410、输入装置430和输出装置440;电子设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;电子设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可运行程序以及模块单元,如本申请实施例中的文件处理方法对应的程序指令。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏、扬声器等设备。
本申请实施例提供的电子设备,可以实现通过开源框架实现文件上传、文件下载和文件管理的核心功能,也提供断点续传和大文件传输的功能,并支持开发者完全自定义本地沙盒对文件数据的CRUD功能。
上述实施例中提供的文件处理装置、存储介质及电子设备可运行本申请任意实施例所提供的文件处理方法,具备运行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的文件处理方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种文件处理方法,其特征在于,包括:
响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
若是,则根据所述待传输文件数据确定待传输文件的传输进度;
根据待传输文件数据的传输进度确定续传起始位置;
根据所述续传起始位置,对所述待传输文件进行断点续传。
2.根据权利要求1所述的方法,其特征在于,在检测文件传输任务的任务对象是否存在于预先设置的缓存目录中之前,所述方法还包括:
响应于文件传输请求,检测是否存在缓存目录;
若不存在,则创建缓存目录。
3.根据权利要求1所述的方法,其特征在于,在检测缓存目录中是否有待传输文件数据之后,所述方法还包括:
若所述文件传输请求为文件下载请求,且缓存目录中不存在待传输文件数据,则将待下载文件下载至所述缓存目录中;
若所述文件传输请求为文件上传请求,且缓存目录中不存在待传输文件数据,则将待上传文件拷贝至所述缓存目录中,用于对缓存目录中的待上传文件进行上传操作。
4.根据权利要求1所述的方法,其特征在于,在根据所述续传起始位置,对所述待传输文件进行断点续传之后,所述方法还包括:
若检测到传输停止时,则确定待传输文件传输是否完成;
若传输未完成,则在待传输文件的数据中记录传输进度。
5.根据权利要求1所述的方法,其特征在于,根据待传输文件数据的传输进度确定续传起始位置,包括:
若文件传输请求为文件下载请求,则通过待传输文件数据的已写入字节长度,设置文件下载请求的进度值,供服务器根据所述进度值进行续传;
若当文件传输请求为文件上传请求,则通过待传输文件数据保存的已上传字节长度,以及已上传进度值,确定待上传文件的续传起始位置。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
运用预设的文件管理字段,在文件传输过程中对文件进行管理操作,其中,管理操作包括如下至少一项:增加操作、查询操作、更新操作和删除操作。
7.一种文件处理装置,其特征在于,包括:
待传输文件数据检测模块,用于响应于文件传输请求,检测缓存目录中是否有待传输文件数据;
传输进度确定模块,用于若所述待传输文件数据检测模块检测为是,则根据所述待传输文件数据确定待传输文件的传输进度;
续传起始位置确定模块,用于根据待传输文件数据的传输进度确定续传起始位置;
断点续传执行模块,用于根据所述续传起始位置,对所述待传输文件进行断点续传。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
缓存目录检测模块,用于响应于文件传输请求,检测是否存在缓存目录;
缓存目录创建模块,用于若所述缓存目录检测模块检测为不存在,则创建缓存目录。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的文件处理方法。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583676.0A CN110336871A (zh) | 2019-07-01 | 2019-07-01 | 一种文件处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583676.0A CN110336871A (zh) | 2019-07-01 | 2019-07-01 | 一种文件处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110336871A true CN110336871A (zh) | 2019-10-15 |
Family
ID=68143791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910583676.0A Pending CN110336871A (zh) | 2019-07-01 | 2019-07-01 | 一种文件处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110336871A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110809039A (zh) * | 2019-10-30 | 2020-02-18 | 华工正源智能终端(孝感)有限公司 | 文件上传方法及装置 |
CN111143583A (zh) * | 2019-12-31 | 2020-05-12 | 五八有限公司 | 一种媒体数据库数据变化监听方法以及监听装置 |
CN111147942A (zh) * | 2019-12-17 | 2020-05-12 | 北京达佳互联信息技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN111193777A (zh) * | 2019-12-13 | 2020-05-22 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
CN111262952A (zh) * | 2020-03-27 | 2020-06-09 | 北京环鼎科技有限责任公司 | 用于存储式测井的声波数据文件下载的断点续载方法 |
CN111611307A (zh) * | 2020-06-11 | 2020-09-01 | 上海乾臻信息科技有限公司 | 报表导出方法及装置 |
CN111966845A (zh) * | 2020-08-31 | 2020-11-20 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN112073385A (zh) * | 2020-08-17 | 2020-12-11 | 浙江鸿城科技有限责任公司 | 一种基于基准缓存多态构建的协议格式快速编码的方法 |
CN112153132A (zh) * | 2020-09-18 | 2020-12-29 | 北京浪潮数据技术有限公司 | 基于虚拟化管理平台的文件上传方法、装置及设备 |
CN112751899A (zh) * | 2019-10-31 | 2021-05-04 | 北京沃东天骏信息技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
CN113395353A (zh) * | 2021-06-30 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
CN113483827A (zh) * | 2021-07-26 | 2021-10-08 | 西安芯海微电子科技有限公司 | 可穿戴设备、可穿戴设备的数据处理方法及装置 |
CN114205347A (zh) * | 2021-12-13 | 2022-03-18 | 平安证券股份有限公司 | 基于ftp协议的文件下载方法、装置、设备及存储介质 |
CN114281805A (zh) * | 2022-01-06 | 2022-04-05 | 深圳软牛科技有限公司 | 一种基于WhatsApp软件的数据迁移方法、装置及终端设备 |
WO2022083190A1 (zh) * | 2020-10-19 | 2022-04-28 | 深圳市广和通无线股份有限公司 | 数据下载方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103227812A (zh) * | 2013-03-19 | 2013-07-31 | 青岛海信宽带多媒体技术有限公司 | 智能设备中支持断点续传的下载方法和装置 |
CN106445665A (zh) * | 2016-09-19 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种应用于android系统的系统文件下载方法及下载工具 |
US20170171295A1 (en) * | 2015-12-09 | 2017-06-15 | Synology Incorporated | File upload and download methods and associated server |
CN108234539A (zh) * | 2016-12-14 | 2018-06-29 | 北京金山云网络技术有限公司 | 一种文件上传、下载、传输方法及装置 |
CN109587232A (zh) * | 2018-11-28 | 2019-04-05 | 陕西天诚软件有限公司 | 基于iOS网络的文件断点续传方法 |
-
2019
- 2019-07-01 CN CN201910583676.0A patent/CN110336871A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103227812A (zh) * | 2013-03-19 | 2013-07-31 | 青岛海信宽带多媒体技术有限公司 | 智能设备中支持断点续传的下载方法和装置 |
US20170171295A1 (en) * | 2015-12-09 | 2017-06-15 | Synology Incorporated | File upload and download methods and associated server |
CN106445665A (zh) * | 2016-09-19 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 一种应用于android系统的系统文件下载方法及下载工具 |
CN108234539A (zh) * | 2016-12-14 | 2018-06-29 | 北京金山云网络技术有限公司 | 一种文件上传、下载、传输方法及装置 |
CN109587232A (zh) * | 2018-11-28 | 2019-04-05 | 陕西天诚软件有限公司 | 基于iOS网络的文件断点续传方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110809039A (zh) * | 2019-10-30 | 2020-02-18 | 华工正源智能终端(孝感)有限公司 | 文件上传方法及装置 |
CN112751899A (zh) * | 2019-10-31 | 2021-05-04 | 北京沃东天骏信息技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
CN111193777B (zh) * | 2019-12-13 | 2021-02-05 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
CN111193777A (zh) * | 2019-12-13 | 2020-05-22 | 佛山欧神诺云商科技有限公司 | 一种基于断点续传的文件下载方法、装置及存储介质 |
CN111147942A (zh) * | 2019-12-17 | 2020-05-12 | 北京达佳互联信息技术有限公司 | 视频播放方法、装置、电子设备及存储介质 |
CN111143583A (zh) * | 2019-12-31 | 2020-05-12 | 五八有限公司 | 一种媒体数据库数据变化监听方法以及监听装置 |
CN111262952A (zh) * | 2020-03-27 | 2020-06-09 | 北京环鼎科技有限责任公司 | 用于存储式测井的声波数据文件下载的断点续载方法 |
CN111262952B (zh) * | 2020-03-27 | 2023-11-21 | 北京环鼎科技有限责任公司 | 用于存储式测井的声波数据文件下载的断点续载方法 |
CN111611307A (zh) * | 2020-06-11 | 2020-09-01 | 上海乾臻信息科技有限公司 | 报表导出方法及装置 |
CN111611307B (zh) * | 2020-06-11 | 2023-12-15 | 上海乾臻信息科技有限公司 | 报表导出方法及装置 |
CN112073385A (zh) * | 2020-08-17 | 2020-12-11 | 浙江鸿城科技有限责任公司 | 一种基于基准缓存多态构建的协议格式快速编码的方法 |
CN111966845B (zh) * | 2020-08-31 | 2023-11-17 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN111966845A (zh) * | 2020-08-31 | 2020-11-20 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN112153132A (zh) * | 2020-09-18 | 2020-12-29 | 北京浪潮数据技术有限公司 | 基于虚拟化管理平台的文件上传方法、装置及设备 |
WO2022083190A1 (zh) * | 2020-10-19 | 2022-04-28 | 深圳市广和通无线股份有限公司 | 数据下载方法、装置、计算机设备和存储介质 |
CN113395353A (zh) * | 2021-06-30 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
CN113483827A (zh) * | 2021-07-26 | 2021-10-08 | 西安芯海微电子科技有限公司 | 可穿戴设备、可穿戴设备的数据处理方法及装置 |
CN114205347A (zh) * | 2021-12-13 | 2022-03-18 | 平安证券股份有限公司 | 基于ftp协议的文件下载方法、装置、设备及存储介质 |
CN114205347B (zh) * | 2021-12-13 | 2023-11-14 | 平安证券股份有限公司 | 基于ftp协议的文件下载方法、装置、设备及存储介质 |
CN114281805A (zh) * | 2022-01-06 | 2022-04-05 | 深圳软牛科技有限公司 | 一种基于WhatsApp软件的数据迁移方法、装置及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110336871A (zh) | 一种文件处理方法、装置、存储介质及电子设备 | |
US11621998B2 (en) | Dynamic creation and execution of containerized applications in cloud computing | |
US11200044B2 (en) | Providing access to a hybrid application offline | |
US8458727B2 (en) | Asynchronous client to server updates | |
US9298747B2 (en) | Deployable, consistent, and extensible computing environment platform | |
KR101626117B1 (ko) | 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법 | |
US9549036B2 (en) | Network injected storage redirection for embedded applications | |
KR101991537B1 (ko) | 자율형 네트워크 스트리밍 기법 | |
US10855746B2 (en) | Generating content fragments for content distribution | |
US9128886B2 (en) | Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium | |
WO2019085780A1 (zh) | 一种云存储系统及用于云存储系统中实现自定义数据处理的方法 | |
CN115987974A (zh) | 一种轻量级ftp服务方法及系统 | |
WO2018028321A1 (zh) | 一种虚拟外置存储设备的管理方法、装置及终端 | |
EP1875372B1 (en) | System and method of application persistence | |
JPH11345179A (ja) | データ管理方法、データ管理システム及び構成装置、記録媒体 | |
US20240095094A1 (en) | Funding-based management of cloud resources | |
US11663241B2 (en) | System and method for catalog service | |
US20220021735A1 (en) | System and Method For Displaying and Operating multi-layered Item List in Web Browser With Supporting of Concurrent Users | |
CN117369946A (zh) | 基于dpu的容器部署方法、装置、电子设备及介质 | |
Azevedo et al. | A communication channels dynamic switching model for always-connected availability of service oriented mobile applications | |
JP2009211688A (ja) | ファイルをマイグレートする方法、システムおよびコンピュータ・プログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191015 |
|
RJ01 | Rejection of invention patent application after publication |