CN105141696A - 文件上传方法和装置 - Google Patents
文件上传方法和装置 Download PDFInfo
- Publication number
- CN105141696A CN105141696A CN201510591861.6A CN201510591861A CN105141696A CN 105141696 A CN105141696 A CN 105141696A CN 201510591861 A CN201510591861 A CN 201510591861A CN 105141696 A CN105141696 A CN 105141696A
- Authority
- CN
- China
- Prior art keywords
- file
- client agent
- request
- write
- metadata
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Abstract
本发明实施例提供一种文件上传方法和装置。所述方法包括:客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种文件上传方法和装置。
背景技术
随着互联网技术的发展,用户需要将自身创建的文件上传至数据服务器中,以供其他用户读取,以实现文件的共享。
现有技术中,异步式文件系统在上传文件时,业务客户端将文件上传至业务服务器,业务服务器将文件的数据分成至少一份发送给客户端代理,客户端代理将文件的数据存储在自身的缓存之后,将文件的数据发送给数据服务器,并将发送给数据服务器的文件的大小发送给元数据服务器。客户端代理在将文件的数据发送给数据服务器时,是通过将其缓存中的数据分成多任务多线程发送给数据服务器,举例来说,客户端代理的缓存中有3M数据,客户端代理启动3个并行任务将该3M数据发送给数据服务器。其中,任务1将数据的0M-1M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务1完成后发送给数据服务器的文件的大小1M发送给元数据服务器;任务2将数据的1M-2M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务2完成后发送给数据服务器的文件的大小2M发送给元数据服务器;任务3将数据的2M-3M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务3完成后发送给数据服务器的文件的大小3M发送给元数据服务器。服务器将文件的剩余部分的数据发送给客户端代理,重复上述过程,完成一份文件的上传。
断点续传是在文件上传过程中,如遇故障,当故障修复之后,已上传至数据服务器的文件不会再重传,而是从上次传输的断点处开始传输,断点是根据元数据服务器中记录的该文件已上传的最大值确定的,例如:上述过程中,客户端代理在将其缓存中的文件的数据发送给数据服务器时,如果任务2没有成功,即任务2中数据的1M-2M部分没有成功发送给数据服务器,任务3成功,即任务3中数据的2M-3M部分成功发送给数据服务器,此时,客户端代理在收到数据服务器发送的任务3的成功响应消息后,将任务3完成后发送给数据服务器的文件的大小3M发送给元数据服务器了,此时元数据服务器中记录的是该文件已上传至3M大小了,如果在传输过程中出现故障,则在故障修复后之后,认为上一次的断点为3M,即已上传的文件大小为3M,但实际上,任务2中1M-2M的数据丢失了,导致上传的文件的数据不完整。
发明内容
本发明实施例提供一种文件上传方法和装置,以提高上传的文件的数据完整性。
第一方面,本发明实施例提供一种文件上传方法,包括:
客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;
所述客户端代理接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;
所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据。
结合第一方面,在第一方面的第一种可能的实现方式中,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,包括:
若所述客户端代理接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;
所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据,包括:
若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:
客户端代理接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识,所述客户端代理将所述业务标识存储在缓存中;
所述客户端代理接收业务服务器发送的所述文件的刷盘请求之后,还包括:
根据所述文件的业务标识确定所述文件为预设业务的文件。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述客户端代理接收业务服务器发送的打开文件请求之后,客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:
所述客户端代理向业务服务器发送所述文件的文件句柄;
所述客户端代理接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
第二方面,本发明实施例提供一种文件上传方法,包括:
业务服务器生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;
所述业务服务器向客户端代理发送文件的刷盘请求。
结合第二方面,在第二方面的第一种可能的实现方式中,所述业务服务器生成文件的刷盘请求之前,还包括:
所述业务服务器向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;
所述业务服务器接收所述客户端代理发送文件的文件句柄;
所述业务服务器向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
第三方面,本发明实施例提供一种文件上传装置,包括:
生成模块,用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;
第一接收模块,用于接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;
第一确定模块,用于根据所述写入状态标识,确定是否更新所述文件的元数据。
结合第三方面,在第三方面的第一种可能的实现方式中,所述生成模块具体用于若所述装置接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;
所述第一确定模块具体用于若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述装置还包括:
第二接收模块,用于接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识;
存储模块,用于将所述业务标识存储在缓存中;
第二确定模块,用于根据所述文件的业务标识确定所述文件为预设业务的文件。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述装置还包括:
发送模块,用于向业务服务器发送所述文件的文件句柄;
第三接收模块,用于接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
第四方面,本发明实施例提供一种文件上传装置,包括:
生成模块,用于生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;
第一发送模块,用于向客户端代理发送文件的刷盘请求。
结合第四方面,在第四方面的第一种可能的实现方式中,所述装置还包括:
第二发送模块,用于向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;
接收模块,用于接收所述客户端代理发送文件的文件句柄;
第三发送模块,用于向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
本发明实施例提供的文件上传方法和装置,通过客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的文件上传方法实施例一的流程示意图;
图2为本发明实施例提供的文件上传方法实施例二的流程示意图;
图3为本发明实施例提供的文件上传方法实施例二的一种实现方式的信令流程示意图;
图4为本发明实施例提供的文件上传方法实施例三的流程示意图;
图5为本发明实施例提供的文件上传装置实施例一的结构示意图;
图6为本发明实施例提供的文件上传装置实施例二的结构示意图;
图7为本发明实施例提供的文件上传装置实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的文件上传方法可以应用在异步式文件系统中业务客户端通过业务服务器、客户端代理将文件上传至数据服务器的场景中,在文件上传的过程中出现故障,在进行断点续传的时候从上次传输的断点处开始传输,已上传过的文件不会重复上传。断点是根据元数据服务器中记录的该文件已上传的最大值确定的。本发明实施例提供的文件上传方法中,客户端代理根据数据服务器反馈的文件的写入响应,生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明实施例提供的文件上传方法实施例一的流程示意图。如图1所示,本实施例的方法可以包括:
S101:客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识。
具体地,本实施例中的文件可以为图片、文档及视频等。在异步式文件系统进行文件上传时,业务客户端先将文件发送给业务服务器,业务服务器再将文件发送给客户端代理,客户端代理将文件缓存在自身的缓存之后,根据自身缓存的更新频率,将文件的数据发送给数据服务器。客户端代理将其缓存中的数据分块,再将各分块多任务多线程发送给数据服务器。
数据服务器反馈的文件的写入响应有两种情况,一种为数据服务器成功收到每一个分块的数据,分别向客户端代理发送文件写入成功的响应;另一种情况为:数据服务器至少有一个分块没有成功接收,数据服务器向客户端代理发送写入失败的响应,客户端接收数据服务器反馈的文件的所有分块中有至少一个分块写入失败,则生成写入失败标识。需要说明的是,如果客户端代理在预设的时间内所有分块中有至少一个分块没有收到数据服务器反馈的文件写入成功的响应,则生成写入失败标识。
S102:客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据。
具体地,业务服务器会发送文件的刷盘请求给客户端代理。可选的,业务服务器根据预设的频率向业务服务器发送文件的刷盘请求。
S103:客户端代理根据写入状态标识,确定是否更新文件的元数据。
具体地,若客户端代理生成的写入状态标识为写入失败标识,则不更新文件的元数据。可选的,文件的元数据可以是文件的大小。本实施例中表示的是已经上传至数据服务器的文件的大小。
可选的,若客户端代理收到了数据服务器反馈的所有分块的文件写入成功的响应,则将此次上传至数据服务器之后的文件的元数据即大小发送给元数据服务器,即更新文件的元数据。
本发明实施例提供的文件上传方法中,通过客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
图2为本发明实施例提供的文件上传方法实施例二的流程示意图。本实施例在上述实施例一的基础上,S101之前包括:
S201:客户端代理接收业务服务器发送的打开文件请求,打开文件请求中包括文件的业务标识,客户端代理将业务标识存储在缓存中。
具体地,这里的打开文件请求中的文件为客户端代理新建的空白文件。在S201之前,业务服务器向客户端代理发送请求,客户端代理根据该请求创建一个空白文件。业务服务器向客户端代理发送打开文件请求,打开文件请求中包括文件的业务标识。举例来说,该业务标识可以表示文件为文件传输协议(FileTransferProtocol;简称:FTP)文件。可选的,可以通过预先设置的规则来确定,该业务标识可以是一个比特位的消息,1表示该业务为FTP业务,0表示该业务不是FTP业务。客户端代理收到业务标识后将其存储在缓存中。客户端代理将业务标识存储在缓存后通过缓存引用技术确保缓存不会老化。在业务服务器向客户端代理发送打开文件请求之前,业务客户端已经将其需要上传的文件上传至业务服务器中。
S202:客户端代理向业务服务器发送文件的文件句柄。
具体地,业务服务器收到客户端代理发送的文件句柄后,才可以进行文件上传。
S203:客户端代理接收业务服务器发送的文件的写入请求,写入请求中包含文件的数据和文件句柄。
具体地,客户端代理接收到业务服务器发送的文件的写入请求后,根据写入请求中的文件句柄将文件的数据存储在缓存中。
本实施例在上述实施例一的基础上,S102之后包括:
S204:根据文件的业务标识确定文件为预设业务的文件。
客户端代理在接收业务服务器发送的文件的刷盘请求后,根据文件的业务标识确定文件预设业务的文件。可选的,刷盘请求中包括文件句柄。客户端代理收到刷盘请求后,根据刷盘请求中的文件句柄找到文件在客户端代理缓存中的位置,进而,找到业务标识,确定文件为预设业务的文件。预设业务可以为FTP业务,可以通过预先设置的规则来确定文件为预设业务的文件。
以下详细说明本发明实施例提供的文件上传方法的工作过程:业务客户端将文件上传至业务服务器。业务服务器向客户端代理发送打开文件请求,这里的打开文件请求指的是打开客户端代理创建的空白文件,打开文件请求中包括文件的业务标识,客户端代理将业务标识存储在缓存中。客户端代理在收到业务服务器的打开文件请求后,向业务服务器发送文件的文件句柄。业务服务器收到文件句柄后,将业务客户端发送给它的文件分成至少一份,举例来说,业务服务器可以将一份9M文件分成A、B和C三部分,其中,A部分为文件的0M-3M部分,B部分为文件的3M-6M部分,C部分为文件的6M-9M部分。业务服务器先将A部分和文件句柄封装在文件的写入请求中,发送给客户端代理,客户端代理将A部分存储在缓存中,此时,如果客户端代理的缓存需要进行一次刷新,则客户端代理需要将文件的A部分发送给数据服务器,客户端代理将其缓存中的文件的A部分分块、多任务多线程发送给数据服务器。为方便描述,假设客户端代理分成3个任务将文件的A部分发送给数据服务器,其中,任务1将A部分的0M-1M发送给数据服务器,任务2将A部分的1M-2M数据发送给数据服务器,任务3将A部分的2M-3M发送给数据服务器。如果每一个任务发送给数据服务器的数据都被数据服务器成功接收的话,则数据服务器在收到每个任务的数据后,会发送文件写入成功的响应给客户端代理。
第一种情况为:如果客户端代理执行任务1、任务2和任务3后都收到了数据服务器反馈的文件写入成功的响应,此时,如果收到了业务服务器发送的刷盘请求,客户端代理根据刷盘请求中的文件句柄找到文件的业务标识,确定文件为预设业务的文件,则客户端代理更新文件的元数据,将文件的元数据即文件上传至数据服务器的大小3M发送给元数据服务器。
第二种情况为:如果客户端代理执行任务1、任务2和任务3后,任务1和任务3都收到了数据服务器反馈的文件写入成功的响应,任务2收到了数据服务器反馈的写入失败的响应,或者,客户端代理在预设的时间内未收到数据服务器反馈的任务2写入成功的响应,则客户端代理生成写入失败标识。此时,如果收到了业务服务器发送的刷盘请求,客户端代理根据刷盘请求中的文件句柄找到文件的业务标识,确定文件为预设业务的文件,但此时客户端代理中有写入失败标识,则不更新文件的元数据,即不更新文件的大小至元数据服务器。此时,文件已上传的大小依然为0M。此时,如果出现故障,在进行断点续传的时候,会从文件的0M位置开始上传,从而,保证了文件上传的完整性。
第三种情况为:如果文件的A部分都成功上传,且在收到刷盘请求后,客户端代理更新了文件的元数据,此时,元数据服务器中文件的大小为3M。业务服务器将文件的B部分发送给客户端代理,客户端代理将B部分存储在缓存中,此时,如果客户端代理的缓存需要进行一次刷新,则客户端代理需要将文件的B部分发送给数据服务器,客户端代理将其缓存中的文件的B部分分块、多任务多线程发送给数据服务器。假设分成3个任务,任务1将B部分的3M-4M发送给数据服务器,任务2将B部分的4M-5M发送给数据服务器,任务3将B部分的5M-6M发送给数据服务器。如果任务1和任务3都收到了数据服务器反馈的文件写入成功的响应,任务2收到了数据服务器反馈的写入失败的响应,或者,客户端代理在预设的时间内未收到数据服务器反馈的任务2写入成功的响应,则客户端代理生成写入失败标识。此时,如果收到了业务服务器发送的刷盘请求,客户端代理根据刷盘请求中的文件句柄找到文件的业务标识,确定文件为预设业务的文件,但此时客户端代理中有写入失败标识,则不更新文件的元数据。此时,元数据服务器中文件的大小依然为3M。此时,如果出现故障,在进行断点续传的时候,会从文件的3M位置开始上传,从而,保证了文件上传的完整性。
需要说明的是,客户端代理在收到业务服务器发送的文件的刷盘请求之后,还需判断缓存中是否有还未写入数据服务器的数据,如果有,则需要将客户端代理缓存中的数据都写入数据服务器后,再确定是否更新文件的元数据。业务服务器将文件的A部分发送给客户端代理,再将文件的B部分发送给客户端代理,客户端代理将A部分和B部分存储后,此时,如果客户端代理的缓存需要进行一次刷新,客户端代理将文件的A部分和B部分分成至少一个分块多任务多线程地发送给数据服务器。可选的,在本发明实施例中,在文件上传完成后,业务服务器向客户端代理发送关闭文件请求,客户端代理清除业务标识,以便于客户端代理对其他业务提供服务。
图3为本发明实施例提供的文件上传方法实施例二的一种实现方式的信令流程示意图。如图3所示,在本实现方式中,业务服务器为FTP服务器。FTP客户端将文件上传至FTP服务器,FTP服务器通过以下步骤将文件上传至数据服务器并更新文件的元数据至元数据服务器中:
步骤1:FTP服务器发送打开文件请求,包括:FTP业务标识。
步骤2:客户端代理将FTP业务标识存储在缓存中。
步骤3:客户端代理向FTP服务器发送成功响应,包括:文件的文件句柄。
步骤4:FTP服务器向客户端代理发送文件的写入请求,包括:文件的数据和文件句柄。
步骤5:客户端代理将文件的数据存储在缓存中。
步骤6:客户端代理将文件的数据发送给数据服务器。
步骤7:客户端代理接收数据服务器的反馈的文件的写入响应,根据写入响应确定生成文件写入状态标识。
步骤8:FTP服务器发送刷盘请求。刷盘请求用于请求客户端代理更新文件的元数据。
步骤9:客户端代理根据文件的业务标识确定文件为FTP文件。
步骤10:客户端代理根据写入状态标识,确定是否更新文件的大小至元数据服务器中。如果客户端代理中有写入失败标识,则不更新文件的大小至元数据服务器中。
步骤11:如果客户端代理中没有写入失败标识,则更新文件的大小。
需要说明的是,在上述步骤中,步骤6和步骤7是循环进行的,以将客户端代理缓存中的文件的数据都发送给数据服务器。步骤4-步骤11是循环进行的,以实现FTP服务器将文件上传至数据服务器同时将上传至数据服务器的文件的大小更新至元数据服务器。
可选的,在文件上传完成后,执行以下步骤:
步骤12:FTP服务器向客户端代理发送关闭文件请求。
步骤13:客户端代理清除FTP业务标识。
本发明实施例提供的文件上传方法,通过客户端代理接收业务服务器发送的打开文件请求,打开文件请求中包括文件的业务标识,客户端代理将业务标识存储在缓存中,客户端代理向业务服务器发送文件的文件句柄,客户端代理接收业务服务器发送的文件的写入请求,写入请求中包含文件的数据和文件句柄,客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据文件的业务标识确定文件为预设业务的文件,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
图4为本发明实施例提供的文件上传方法实施例三的流程示意图。如图4所示,本实施例提供的文件上传方法包括:
S401:业务服务器生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新文件的元数据。
S402:业务服务器向客户端代理发送文件的刷盘请求。
进一步地,在本发明实施例中,在步骤S401之前,还包括:
业务服务器向客户端代理发送打开文件请求,打开文件请求中包括文件的业务标识。
具体地,这里的打开文件请求中涉及的文件为客户端代理新建的空白文件。举例来说,该业务标识可以表示文件为FTP文件。可选的,可以通过预先设置的规则来确定,该业务标识可以是一个比特位的消息,1表示该业务为FTP业务,0表示该业务不是FTP业务。
业务服务器接收客户端代理发送的文件的文件句柄。
业务服务器向客户端代理发送文件的写入请求,写入请求中包含文件的数据和文件句柄。
本发明实施例提供的文件上传方法,通过业务服务器生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新文件的元数据,业务服务器向客户端代理发送文件的刷盘请求,使得客户端代理能在接收到业务服务器发送的刷盘请求之后,确定是否更新文件的元数据,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
图5为本发明实施例提供的文件上传装置实施例一的结构示意图。如图5所示,本实施例提供的文件上传装置50包括:
生成模块51,用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识。
生成模块51具体用于若文件上传装置50接收数据服务器反馈的文件的所有分块中有至少一个分块写入失败,则生成写入失败标识。
第一接收模块52,用于接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据。
第一确定模块53,用于根据写入状态标识,确定是否更新文件的元数据。
第一确定模块53具体用于若写入状态标识为写入失败标识,则不更新文件的元数据。
本发明实施例提供的装置对应地可用于执行图1所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本发明实施例提供的文件上传装置,通过设置生成模块,用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,第一接收模块用于接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,第一确定模块用于根据写入状态标识,确定是否更新文件的元数据,可见,本发明实施例提供的文件上传装置能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了本发明实施例提供的文件上传装置是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
图6为本发明实施例提供的文件上传装置实施例二的结构示意图。如图6所示,在上述实施例一的基础上,本发明实施例提供的文件上传装置60还包括:
第二接收模块61,用于接收业务服务器发送的打开文件请求,打开文件请求中包括文件的业务标识。
存储模块62,用于将业务标识存储在缓存中。
发送模块63,用于向业务服务器文件的文件句柄。
第三接收模块64,用于接收业务服务器发送的文件的写入请求,写入请求中包含文件的数据和文件句柄。
第二确定模块65,用于根据文件的业务标识确定文件为预设业务的文件。
本发明实施例提供的装置对应地可用于执行图2所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本发明实施例提供的文件上传装置,通过第二接收模块用于接收业务服务器发送的打开文件请求,打开文件请求中包括文件的业务标识,存储模块用于将业务标识存储在缓存中,发送模块用于向业务服务器发送文件的文件句柄,第三接收模块用于接收业务服务器发送的文件的写入请求,写入请求中包含文件的数据和文件句柄,生成模块用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,第一接收模块用于接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,第二确定模块用于根据文件的业务标识确定文件为预设业务的文件,第一确定模块用于根据写入状态标识,确定是否更新文件的元数据,可见,本发明实施例提供的装置能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了本发明实施例提供的装置是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
图7为本发明实施例提供的文件上传装置实施例三的结构示意图。如图7所示,本实施例提供的文件上传装置70包括:
生成模块71,用于生成文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据。
第一发送模块72,用于向客户端代理发送文件的刷盘请求。
还包括:第二发送模块,用于向客户端代理发送打开文件请求,打开文件请求中包括文件的业务标识。接收模块,用于接收客户端代理发送文件的文件句柄。第三接收模块,用于向客户端代理发送文件的写入请求,写入请求中包含文件的数据和文件句柄。
本发明实施例提供的装置对应地可用于执行图4所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本发明实施例提供的文件上传装置,通过设置生成模块,用于生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新文件的元数据,第一发送模块,用于向客户端代理发送文件的刷盘请求,使得客户端代理能在接收到业务服务器发送的刷盘请求之后,确定是否更新文件的元数据,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种文件上传方法,其特征在于,包括:
客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;
所述客户端代理接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;
所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据。
2.根据权利要求1所述的方法,其特征在于,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,包括:
若所述客户端代理接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;
所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据,包括:
若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。
3.根据权利要求2所述的方法,其特征在于,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:
所述客户端代理接收所述业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识,所述客户端代理将所述业务标识存储在缓存中;
所述客户端代理接收业务服务器发送的所述文件的刷盘请求之后,还包括:
根据所述文件的业务标识确定所述文件为预设业务的文件。
4.根据权利要求3所述的方法,其特征在于,所述客户端代理接收业务服务器发送的打开文件请求之后,客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:
所述客户端代理向业务服务器发送所述文件的文件句柄;
所述客户端代理接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
5.一种文件上传方法,其特征在于,包括:
业务服务器生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;
所述业务服务器向客户端代理发送文件的刷盘请求。
6.根据权利要求5所述的方法,其特征在于,所述业务服务器生成文件的刷盘请求之前,还包括:
所述业务服务器向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;
所述业务服务器接收所述客户端代理发送的文件的文件句柄;
所述业务服务器向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
7.一种文件上传装置,其特征在于,包括:
生成模块,用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;
第一接收模块,用于接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;
第一确定模块,用于根据所述写入状态标识,确定是否更新所述文件的元数据。
8.根据权利要求7所述的装置,其特征在于,
所述生成模块具体用于若所述装置接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;
所述第一确定模块具体用于若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识;
存储模块,用于将所述业务标识存储在缓存中;
第二确定模块,用于根据所述文件的业务标识确定所述文件为预设业务的文件。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
发送模块,用于向业务服务器发送所述文件的文件句柄;
第三接收模块,用于接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
11.一种文件上传装置,其特征在于,包括:
生成模块,用于生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;
第一发送模块,用于向客户端代理发送文件的刷盘请求。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二发送模块,用于向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;
接收模块,用于接收所述客户端代理发送的文件的文件句柄;
第三发送模块,用于向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510591861.6A CN105141696A (zh) | 2015-09-17 | 2015-09-17 | 文件上传方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510591861.6A CN105141696A (zh) | 2015-09-17 | 2015-09-17 | 文件上传方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105141696A true CN105141696A (zh) | 2015-12-09 |
Family
ID=54726899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510591861.6A Pending CN105141696A (zh) | 2015-09-17 | 2015-09-17 | 文件上传方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105141696A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203531A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种文件处理方法和装置 |
CN108848180A (zh) * | 2018-06-27 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种元数据同步方法、装置、设备及可读存储介质 |
CN113726842A (zh) * | 2021-07-09 | 2021-11-30 | 北京房江湖科技有限公司 | 一种文件上传方法和装置、电子设备及存储介质 |
CN114338653A (zh) * | 2021-12-29 | 2022-04-12 | 中国电信股份有限公司 | 文件断点续传方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110154111A1 (en) * | 2009-12-23 | 2011-06-23 | International Business Machines Corporation | Memory Based Hardware Breakpoints |
CN103546580A (zh) * | 2013-11-08 | 2014-01-29 | 北京邮电大学 | 一种应用于分布式文件系统的文件副本异步写方法 |
CN103547339A (zh) * | 2013-05-08 | 2014-01-29 | 华为技术有限公司 | 一种文件上传方法、客户端和服务端 |
CN104679830A (zh) * | 2015-01-30 | 2015-06-03 | 乐视网信息技术(北京)股份有限公司 | 一种文件处理方法和装置 |
-
2015
- 2015-09-17 CN CN201510591861.6A patent/CN105141696A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110154111A1 (en) * | 2009-12-23 | 2011-06-23 | International Business Machines Corporation | Memory Based Hardware Breakpoints |
CN103547339A (zh) * | 2013-05-08 | 2014-01-29 | 华为技术有限公司 | 一种文件上传方法、客户端和服务端 |
CN103546580A (zh) * | 2013-11-08 | 2014-01-29 | 北京邮电大学 | 一种应用于分布式文件系统的文件副本异步写方法 |
CN104679830A (zh) * | 2015-01-30 | 2015-06-03 | 乐视网信息技术(北京)股份有限公司 | 一种文件处理方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203531A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种文件处理方法和装置 |
CN108848180A (zh) * | 2018-06-27 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种元数据同步方法、装置、设备及可读存储介质 |
CN113726842A (zh) * | 2021-07-09 | 2021-11-30 | 北京房江湖科技有限公司 | 一种文件上传方法和装置、电子设备及存储介质 |
CN114338653A (zh) * | 2021-12-29 | 2022-04-12 | 中国电信股份有限公司 | 文件断点续传方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109428773B (zh) | 一种通信方法和装置 | |
CN105141696A (zh) | 文件上传方法和装置 | |
CN113301568B (zh) | 用于配网的方法、装置和智能家居设备 | |
CN104967585A (zh) | 一种远程调试移动终端的方法和装置 | |
CN106534261A (zh) | 数据写入方法、装置及系统 | |
US10409999B2 (en) | Communication between key manager and storage subsystem kernel via management console | |
CN103475682A (zh) | 文件迁移方法及设备 | |
CN108874825B (zh) | 一种异常数据的校验方法和装置 | |
CN104866290A (zh) | 一种用于数据传输的方法和装置 | |
CN109634912B (zh) | 数据迁移方法及系统 | |
CN104408068A (zh) | 一种报表数据处理方法及相关设备 | |
CN103595808A (zh) | 一种文件更新信息推送方法及装置 | |
EP3313022B1 (en) | Resending method and device for hypertext transfer request, and client | |
CN109726039B (zh) | 用于管理虚拟机的方法和设备 | |
CN108833477B (zh) | 基于共享内存的消息传输方法、系统和装置 | |
CN102984138A (zh) | 一种获取对象的方法、装置和系统 | |
CN105245387A (zh) | 一种处理报文的方法及系统 | |
CN112181930B (zh) | 虚拟交换矩阵的文件管理方法及装置 | |
CN105912477B (zh) | 一种目录读取的方法、装置及系统 | |
CN115065694A (zh) | 一种云存储数据中转上传系统、方法、设备及介质 | |
CN111274176B (zh) | 一种信息处理方法、电子设备、系统及存储介质 | |
US10514850B2 (en) | Information processing system, server device, Information processing method, and computer program product | |
CN103701937A (zh) | 一种上传大文件的方法 | |
CN113452726A (zh) | 数据传输方法、终端及计算机可读存储介质 | |
CN110011767B (zh) | 用于tcp连接备份的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |