CN108234539B - 一种文件上传、下载、传输方法及装置 - Google Patents
一种文件上传、下载、传输方法及装置 Download PDFInfo
- Publication number
- CN108234539B CN108234539B CN201611151740.0A CN201611151740A CN108234539B CN 108234539 B CN108234539 B CN 108234539B CN 201611151740 A CN201611151740 A CN 201611151740A CN 108234539 B CN108234539 B CN 108234539B
- Authority
- CN
- China
- Prior art keywords
- file
- management server
- request
- block
- uploaded
- 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.)
- Active
Links
Images
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/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- 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/1097—Protocols 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)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种文件上传、下载方法及装置,文件上传方法包括:接收针对目标文件的上传请求;将目标文件按照预设分割规则分割成文件块;在分割好的文件块中确定待上传文件块;向云存储***的管理服务器发送上传待上传文件块的第一请求,其中,第一请求中包括待上传文件块的数量;接收管理服务器反馈的第一存储位置;根据第一存储位置,上传待上传文件块;在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将待上传文件块更新为所选择的文件块,并返回执行向云存储***的管理服务器发送上传待上传文件块的第一请求的步骤,直至分割好的文件块全部上传完成。应用本发明实施例,减少了文件上传过程中的出错机率。
Description
技术领域
本发明涉及数据传输领域,特别涉及一种文件上传、下载、传输方法及装置。
背景技术
在当前信息***的时代,无时无刻不在都在产生数据信息,同时也在无时无刻不在进行着数据信息的传递、利用等,为了更好地传递或利用这些数据信息,可以将这些数据信息保存下来。数据信息保存的方式有很多种,最常用的方式就是把数据信息保存在文件中,将文件进行保存。这里所说的文件可以为视频文件、音频文件、图片文件、文档文件、网页文件等等。
通常情况下,可以将文件保存至存储介质中,但随着需要存储的文件越来越多,而存储介质的存储容量有限,现有的存储的方法已经不能满足实际的需求,通过将文件上传至云存储***进行保存来解决这一问题。云存储***是基于云存储技术的一种新兴的网络存储***,其存储容量可以海量扩容。
将文件上传至云存储***的方法是向云存储***的管理服务器发送上传文件的请求,在接收到管理服务器反馈的该文件的存储位置后,将文件上传至该存储位置,该存储位置是文件在云存储***中的存储服务器中的存储位置。由于在上传的过程中,是整个文件上传,上传的时间比较长,出错的机率很大,可能会导致文件的损坏或上传失败等情况的发生。
发明内容
本发明实施例的目的在于提供一种文件上传、下载、传输方法及装置,以减少文件上传过程中的出错机率。
第一方面,为达到上述目的,本发明实施例公开了一种文件上传方法。方法包括:
接收针对目标文件的上传请求;
将所述目标文件按照预设分割规则分割成文件块;
在分割好的文件块中确定待上传文件块;
向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量;
接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件块在云存储***的存储服务器中的存储位置;
根据所述第一存储位置,上传所述待上传文件块;
在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将所述待上传文件块更新为所选择的文件块,并返回执行所述向云存储***的管理服务器发送上传所述待上传文件块的第一请求的步骤,直至分割好的文件块全部上传完成。
第二方面,为达到上述目的,本发明实施例公开了一种文件下载方法。方法包括:
向云存储***的管理服务器发送针对第一文件的下载请求,其中,所述第一文件包括至少一个文件块;
接收所述管理服务器反馈的第三信息,其中,所述第三信息中包括所述第一文件的文件块数量;
基于所述文件块数量,确定待下载文件块;
向所述管理服务器发送下载所述待下载文件块的第三请求,其中所述第三请求包含所述待下载文件块的数量;
接收所述管理服务器反馈的所述待下载文件块的第二存储位置;
从所述第二存储位置下载所述待下载文件块,在所述第一文件未下载完毕的情况下,返回执行所述基于所述第一文件的块数,确定待下载文件的步骤,直至所述第一文件下载完成。
第三方面,为达到上述目的,本发明实施例公开了一种文件上传装置。装置包括:
第一接收模块,用于接收针对目标文件的上传请求;
分割模块,用于将所述目标文件按照预设分割规则分割成文件块;
第一确定模块,用于在分割好的文件块中确定待上传文件块;
第一发送模块,用于向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量;
第二接收模块,用于接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件块在云存储***的存储服务器中的存储位置;
第一上传模块,用于将所述待上传文件块上传至所述第一存储位置;
更新模块,用于在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将所述待上传文件块更新为所选择的文件块,并返回执行所述第一发送模块,直至分割好的文件块全部上传完成。
第四方面,为达到上述目的,本发明实施例公开了一种文件下载装置。装置包括:
第四发送模块,用于向云存储***的管理服务器发送针对第一文件的下载请求,其中,所述第一文件包括至少一个文件块;
第五接收模块,用于接收所述管理服务器反馈的第三信息,其中,所述第三信息中包括所述第一文件的文件块数量;
第二确定模块,用于基于所述文件块数量,确定待下载文件块;
第五发送模块,用于向所述管理服务器发送下载所述待下载文件块的第三请求,其中所述第三请求包含所述待下载文件块的数量;
第六接收模块,用于接收所述管理服务器反馈的所述待下载文件块的第二存储位置;
下载模块,用于从所述第二存储位置下载所述待下载文件块,在所述第一文件未下载完毕的情况下,返回执行所述第二确定模块,直至所述第一文件下载完成。
第五方面,为达到上述目的,本本发明实施例公开了一种文件传输方法,所述方法包括:
监测是否接收到用于第三文件操作面板的第三展示指令;
若为是,展示所述第三文件操作面板;
接收通过所述第三文件操作面板发送的文件传输指令;
判断是否成功登录云存储***的管理服务器;
若成功,在距离所述第三文件操作面板的第三预设位置展示第三文件管理面板;
若失败,展示第三登录面板,并通过所述第三登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第三预设位置展示第二文件管理面板;
获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行文件传输。
第六方面,为达到上述目的,本发明实施例公开了一种文件传输装置,所述装置包括:
第二监测模块,用于监测是否接收到用于第三文件操作面板的第三展示指令;
第五展示模块,用于在所述第二监测模块的监测结果为是的情况下,展示所述第三文件操作面板;
第十接收模块,用于接收通过所述第三文件操作面板发送的文件传输指令;
第二判断模块,用于判断是否成功登录云存储***的管理服务器;
第六展示模块,用于第二判断模块的判断结果为成功的情况下,在距离所述第三文件操作面板的预设位置展示第三文件管理面板;
第七展示模块,用于第二判断模块的判断结果为失败的情况下,展示第三登录面板,并通过所述第三登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的预设位置展示第二文件管理面板;
传输模块,用于获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行文件传输。
由上述技术方案可见,本发明实施例提供,一种文件上传、下载方法及装置,文件上传方法包括:获取针对目标文件的上传请求;将所述目标文件按照预设分割规则分割成文件块;在分割好的文件块中确定待上传文件块;向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量;接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件在云存储***的存储服务器中的存储位置;将所述待上传文件块上传至所述第一存储位置;在分割好的文件块中除已经上传的文件块的其他文件块中,确定待上传文件块,并返回执行向云存储***的管理服务器发送上传所述待上传文件块的第一请求的步骤;直至所有文件块上传完成。应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的文件上传方法的第一种流程示意图;
图2为本发明实施例提供的文件上传方法的第二种流程示意图;
图3为在PS中展示有第一文件管理面板的效果图;
图4为在PS中展示有第一登录面板的效果图;
图5为本发明实施例提供的文件上传方法的第三种流程示意图;
图6为本发明实施例提供的文件上传方法的第四种流程示意图;
图7为本发明实施例提供的文件上传方法的第五种流程示意图;
图8为本发明实施例提供的文件上传方法的第六种流程示意图;
图9为本发明实施例提供的文件上传方法的第七种流程示意图;
图10为本发明实施例提供的文件下载方法的第一种流程示意图;
图11为本发明实施例提供的文件下载方法的第二种流程示意图;
图12为本发明实施例提供的文件下载方法的第三种流程示意图;
图13为本发明实施例提供的文件下载方法的第四种流程示意图;
图14为本发明实施例提供的文件下载方法的第五种流程示意图;
图15为本发明实施例提供的文件上传装置的结构示意图;
图16为本发明实施例提供的文件下载装置的结构示意图;
图17为本发明实施例提供的文件传输方法的种流程示意图;
图18为在PS中展示有第三文件管理面板的效果图;
图19为在PS中展示有第三登录面板的效果图;
图20为本发明实施例提供的文件传输装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术问题,本发明实施例提供了一种文件上传、下载、传输方法及装置。下面首先对本发明实施例所提供的一种文件上传方法进行介绍。
图1为本发明实施例提供的文件上传方法的第一种流程示意图;方法包括:
S101:接收针对目标文件的上传请求。
在本发明实施例中,可以是具有上传功能的客户端接收针对目标文件的上传请求,这里所说的具有上传功能的客户端可以为专有上传功能的客户端,也可以为带有上传功能的客户端。专有上传功能的客户端可以为只具有与上传下载等相关功能的客户端,即专门为上传下载而定制的客户端,而带有上传功能的客户端除了具有上传功能,还具有其他功能,示例性的,可以为对文件的编辑功能等等。
带有上传功能的客户端,示例性的,可以为带有上传功能的PS(AdobePhotoshop),PS是图像处理软件,主要是用来处理以像素所构成的数字图像,即可以理解为本发明实施例所提供的方法应用于PS中,具体的,应用于PS中带有上传功能的插件中。当然,PS包括了不同的版本,示例性的,可以为PS的CC(Creative Cloud,创意云)版本,PS的CS6、CS5版本等等,进一步的,该PS安装在Mac***中,Mac是苹果公司自1984年起以“Macintosh(麦金塔电脑)”开始的个人消费型计算机。当然带有上传功能的客户端还可以为办公软件、视频编辑软件、音频编辑软件、阅读软件等等。在实际应用中,带有上传功能的客户端可以通过具有上传功能的插件实现文件的上传。插件(Plug)是一种遵循一定规范的应用接口编写出来的程序,执行运行在该程序规定的***平台下,而不能脱离指定的平台单独运行。具体实现可以为:将具有上传功能的插件存放在客户端中的安装目录下的存放插件的文件夹,该文件夹可以称之为Plug-ins。需要说明的是,该插件除了具有上传功能,还可以具有下载功能。当然,这里所说的上传功能的客户端可以安装在Mac***中,也可以安装在Windows***中,Windows***是美国微软公司开发的一种操作***。
在实际应用中,接收到针对目标文件的上传请求后,客户端启动一个文件输入流,该文件输入流一点一点地从文件中读取数据,将读取中的数据存储在内存中,该内存为上传文件临时缓存所设置的存储空间,上述过程可以理解为,将目标文件的临时数据块缓存在内存中,当然,如果目标文件比较小,可以将目标文件缓存在内存中。进一步的,如果该客户端的上传功能是以插件实现的,则本发明实施例所提供的文件上传方法是通过插件实现的。
在实际应用中,插件的安装方法是现有技术,在这里不进行赘述。插件在客户端启动时自动加载,也可以在触发时才进行加载。当插件加载完成后,可以监听上传请求并将接收该上传请求,实现目标文件的上传。
在本发明实施例中,插件与安装有该插件的客户端需要联动才能实现文件的上传。具体的,插件与该客户端之间的联动方式为:
插件会监测到客户端的打开、保存、新建等事件,这些事件的监测利用了客户端的SDK(Software Development Kit,软件开发工具包)来实现的,具体的实现过程为:下载客户端的SDK,基于客户端的SDK,按照所需要的功能进行开发,可以实现对事件的监测。当该插件监测到事件后,创建事件的描述,然后,转换事件的各个参数,根据事件的不同,转换后的参数不同,即别名不同,转换参数可以使得插件兼容各种操作;进而,对事件进行执行,根据事件转换后的参数,枚举响应事件,这里所说的枚举响应事件是转换后的参数与事件存在对应关系,将转换后的参数与事件进行逐个匹配,示例性的,假设转换后的参数为1234,1234对应的事件为保存,则1234与保存之间存在对应关系。然后,对事件进行执行,返回错误码,标识执行结果,示例性的,错误码为0,代表事件执行成功,错误码为非0,代表事件执行失败。最后,释放执行该事件所用到的参数内存占用,返回执行结果,即错误码。
下面以在PS中上传目标文件为例说明插件与客户端之间的联动:
当需要上传正在编辑的目标文件时,需要获取当前正在编辑目标文件的本地位置,此时,插件获取针对目标文件的上传请求时,会创建事件的描述,具体的,可以通过sPSActionDescriptor->Make,创建对获取目标文件的本地位置的事件描述,sPSActionDescriptor->Make是一种全局的事件响应函数;然后,转化事件的参数,事件的不同需要转换的参数不同,将事件的参数转换为插件能够理解并能够识别的字符串,插件可以根据识别的字符串对事件进行处理,具体的,可以通过sPSActionReference->PutEnumerated,将事件的参数转换为一个枚举类型的参数;再通过sPSActionControl->Get,对该上传事件执行,获取目标文件的参考位置,然后通过sPSActionDescriptor->GetAlias,获取文件的别名,将目标文件的参考位置转换为别名,再通过AliasToFullPath,将别名转换为真实文件的可读地址,并返回错误码,最后通过sPSActionReference->Free,释放执行该事件所用到的参数内存占用,并返回真实地址。
在本发明实施例中,插件可以包括以JavaScript语言编写的页面及以Objective-C语言编写的上传逻辑,两者分离,有利于解耦。JavaScript(JS)是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。以JavaScript语言编写的页面可以是UI,即User Interface(用户界面)的简称,泛指用户的操作界面,UI设计主要指界面的样式,美观程度。在而使用上,对软件的人机交互、操作逻辑、界面美观的整体设计则是同样重要的另一个门道,在本发明实施例中,UI是web(网页)界面。在实际应用中,插件功能的实现,可以JS语言和OC语言的相互配合才能实现,需要打通两种语言的交互,即实现两种语言的相互调用,下面对两种语言的调用方法进行说明。
一、JS调用OC
利用web界面的重定向原理,即重新在JS语言中指定document.location的值,document.location的含义是将页面内容定位到指定位置,document.location的值是可以理解为是一个URL(Uniform Resource Locator,统一资源定位符),URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。只要该URL字符串中按自定义规则指定所需的调用OC中的方法,然后通过OC中的shouldStartLoadWithRequest函数去捕获处理JS的请求,从而实现JS调用OC。需要说明的是,shouldStartLoadWithRequest函数是OC语言的一个函数,主要是用来捕获JS语言的请求。
二、OC调用JS
在JS语言中有一个windowScriptObject(窗口脚本对象)属性,可以直接获得脚本对象,OC便可以调用callWebScriptMethod:withArguments将消息转发给JS中对象的方法和参数,可以实现OC调用JS,例如[self.windowScriptObject callWebScriptMethod:@"login:password:"withArguments:@[@”zhangsan”,@”123456”]]。callWebScriptMethod:withArguments是OC语言中的函数,主要将OC中的消息传递给JS。
具体的,JS语言与OC语言之间的交互是现有技术,本领域技术人员可以通过公开的资料,实现JS语言与OC语言之间的交互。在本发明实施例中,如果是以插件实现对目标文件的上传,则需要建立插件与云存储***中的管理服务器的联系,具体的,通过插件远程登录管理服务器从而可以建立联系。在远程登录管理服务器时,需要JS语言与OC语言的交互,才能实现。登录过程中的JS语言与OC语言的交互是采用上述方法实现的,在这里不进行赘述。当检测到用户输入的用户的标识信息和密码时,根据用户的标识信息和密码进行验证,验证成功,则登录成功。在具体应用中,用户的标识信息可以为用户名、邮箱、手机号等等,当然,当需要输入的信息包括企业标识信息时,还需要输入企业的标识信息。在本发明实施例中,可以自动登录,也可以检测到登录信息后登录。
S102:将目标文件按照预设分割规则分割成文件块。
预设分割规则可以为根据预设大小分割,示例性的,目标文件为15M,预设大小为4M,则将目标文件块分割成3个4M的文件块和1个3M的文件块;当然,预设分割规则还可以为根据目标文件的大小及预设块数分割,示例性的,目标文件为15M,预设块数是4块,则可以将目标文件分割成1个6M的文件块和3个3M的文件块;预设分割规则还可以为根据预设块数平均分割,示例性的,目标文件为15M,预设块数是5块,则可以将目标文件块分割成5个3M的文件块。本发明实施例只是以上述为例进行说明,实际应用中,预设分割规则并不仅限于上述几种。
在实际应用中,带有上传功能的客户端将缓存在内存中的目标文件按照预设分割规则进行分割,进一步地,是客户端带有上传功能的插件将将缓存在内存中的目标文件按照预设分割规则进行分割。
S103:在分割好的文件块中确定待上传文件块。
当分割好的文件块只有一块时,将该文件块确定为待上传文件块,当分割好的文件块不止一块的时候,可以将固定数量的文件块确定为待上传文件块,示例性的,假设固定数量为16块,分割好的文件块有4块,则将这4块确定为待上传文件块,如果分割好的文件有20块,则将其中的16块确定为待上传文件块,具体的,可以在20个文件块中随机选择16块;在实际应用中,分割好的文件块中每一块都有自身的块号,块号是按照分割的先后顺序确定的,块号可以是数字,也可以为是字母,确定待上传文件块可以根据分割好的文件块的块号的排序确定的。示例性的,假设有5块,分别为文件块1-5,固定数量是两块,则可以将文件块1和文件块2确定为待上传文件块。当然并不不仅限于上述确定待上传文件块的方法,在这里不进行一一列举。
当分割好的文件块不止一块的时候,还可以将其中一个的文件块确定为待上传文件块,也可以将多个文件块确定为待上传文件块。需要说明的是,每一次确定待上传文件块的数量可以相同,也可以不同。具体的,每次确定的待上传文件块的数量可以根据实际情况而定。
S104:向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量。
当需要上传该待上传文件块时,向管理服务器发送第一请求,该第一请求中包含待上传文件块的数量,这里所说的待上传文件块的数量是S103中确定的待上传文件块的数量。在实际应用中,每一分割好的文件块对应着一个块号,则确定的待上传文件块也有其对应的块号,则第一请求中还包括每一待上传文件块的块号,示例性的,待上传文件块分别为文件块1、文件块2和文件块3,则第一请求中包含待上传文件块为3块,分别为文件块1、文件块2和文件块3的信息。
需要说明的是,所有与管理服务器之间的请求可以为https(Hyper TextTransfer Protocol over Secure Socket Layer)请求,https是以安全为目标的http(HyperText Transfer Protocol,超文本传输协议)通道,简单讲是http的安全版。http是互联网上应用最为广泛的一种网络协议。当然,所有与管理服务器之间的请求也可以为http请求。
S105:接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件块在云存储***的存储服务器中的存储位置。
管理服务器在接收到第一请求后,根据第一请求中待上传文件块的数量确定第一存储位置。在实际应用中,管理服务器反馈的第一存储位置可以是与待上传文件块的数量相同的,第一存储位置中的每一存储位置与待上传文件块中的每一文件块存在对应关系,示例性的,可以如表1所示。
表1
文件块 | 存储位置 |
1 | A |
2 | B |
3 | C |
4 | D |
管理服务器反馈的第一存储位置,可以是待上传文件块在存储服务器的一段存储位置,示例性的,第一存储位置可以为存储位置A-存储位置D;当然,第一存储位置可以为待上传文件块在存储服务器中起始存储位置,存储服务器将待上传文件块从该起始存储位置开始依次存储。
需要说明的是,如果管理服务器根据第一请求,确定第一请求中所包含的待上传文件块已经都上传,则反馈已经上传的信息,如果第一请求中所包含的待上传文件块已还有部分未上传,则反馈的信息中包含了已上传的文件块的块号以及第一存储位置,该第一存储位置是基于未上传的文件块的数量确定的,这样可以避免重复上传而导致的资源和效率的浪费。
S106:根据所述第一存储位置,上传所述待上传文件块。
在实际应用中,如果第一存储位置中的每一存储位置与待上传文件块中的每一文件块存在对应关系,则根据该对应关系,将该文件块上传至对应的存储位置;如果第一存储位置是一段存储位置,则可以根据该段存储位置的起始存储位置及结束存储位置,依次上传文件块;如果第一存储位置只包含了起始存储位置,以该起始存储位置为存储起点,上传待上传文件块,当待上传文件块上传完成,则可以确定待上传文件块的结束存储位置。
S107:在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将所述待上传文件块更新为所选择的文件块,并返回执行S104,直至分割好的文件块全部上传完成。
在S013中,确定的待上传文件块,可以是分割好的文件块中的一个或多个文件块,当待上传文件块上传后,还需要在未上传的文件块中选择文件块作为待上传文件块,继续上传文件块,直至所有分割好的文件块上传完成,此时目标文件上传完成。
在本发明实施例中,具有上传功能的客户端能够将自身正在编辑的文件上传至存储服务器,不需要将自身正在编辑的文件先保存,再上传在存储服务器,不用占用本地空间,彻底解放本地存储空间不足的后顾之忧,解决了将文件存储至存储服务器必须先保存的问题,也防止文件损坏或丢失。同时,可以直接将目标文件上传至存储服务器,省去了安装专有上传功能客户端的步骤,也省去了打开上传功能客户端的步骤,简化了带有上传功能的客户端的办公。在现有技术中,采用网页网盘进行存储文件,但由于网页的性能不佳,相较于现有技术,本发明实施例用户体验更好。相较于现有的利用存储介质存储文件,由于存储介质随时可能损坏,不利于数据安全。本发明实施例,将文件上传至存储服务器,能够实现数据的安全。
在本发明实施例中,可以快速地将文件上传至云端进行存储,将较于将文件存储在本地,将文件存储至云端,极大减少了文件丢失或损坏的可能性。而且,在实际应用中,将文件上传至云端,云端提供了一个公共空间,使得可以通过该公共空间将文件分享给他人,当然,也可以以文件外链的形式将分享给他人。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。
在本发明的另一个具体实施例中,参见图2,提供了文件上传的方法的第二种流程示意图,与图1所示实施例相比,本实施例中,根接收针对目标文件的上传请求(S101),包括:
S1011:监测是否接收到用于展示第一文件操作面板的第一展示指令。
在实际应用中,第一展示指令是用于展示第一文件操作面板的展示指令,进一步的,可以说是展示客户端中文件操作面板的展示指令,具体的,客户端中的插件当监测到文件的保存文件事件、打开文件事件等等,均可以默认为接收到第一展示指令。需要说明的是,在本发明实施例中所说的客户端均为带有上传功能的客户端,进一步的,是带有上传功能的插件的客户端。
S1012:展示所述第一文件操作面板。
在接收到第一展示指令后,在客户端展示第一文件操作面板,在实际应用中,该第一文件操作面板可以是由JavaScript语言编写的页面,是UI设计。具体的,第一文件操作面板是插件其中一个界面,具体的展示方法是JS与OC交互实现的,在这里不进行赘述。需要说明的是,在本发明实施例中所说的插件均为带有上传功能的插件。
S1013:接收通过所述第一文件操作面板发送的针对目标文件的上传请求。
在实际应用中,客户端与第一文件操作面板之间建立了连接,客户端可以接收通过第一文件操作面板发送上传请求;示例性的,第一文件操作面板上的“保存到云盘”按钮被触发,客户端就接收到针对目标文件的上传请求,需要说明的是,这里所说的云盘是云存储***。
进一步的,在本发明的一个具体实施例中,在接收过所述第一文件操作面板发送的针对目标文件的上传请求之后,还包括:
判断是否成功登录云存储***的管理服务器;
若成功,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
若失败,展示第一登录面板,并通过所述第一登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
获得根据所述第一文件管理面板的展示信息确定的目标存储路径;
所述第一请求中还包括:所述目标存储路径;
所述接收所述管理服务器反馈的第一存储位置,包括:
接收所述管理服务器根据所述目标存储路径确定的第一存储位置。
在上传文件的时候,客户端需要与云存储***建立连接,进一步,需要与云存储***中的管理服务器和存储服务器建立连接才能完成文件的上传,因此需要判断是否成功登录管理服务器。
在成功登录管理服务器后,则在距离第一文件操作面板的第一预设位置展示第一文件管理面板。示例性的,在PS中的第一文件管理面板可以如图3所示,在图3中,第一文件管理面板位于第一文件操作面板的上侧。这里所说的第一预设位置还可以是第一文件操作面板的左侧、右侧、下侧等位置,本发明实施例对此不做限定。
在实际应用中,如果没有成功登录管理服务器,则展示第一登录面板,示例性的,第一登录面板可以图4所示,可以通过第一登录面板上的登录信息输入框输入登录信息,输入完毕后,点击“登录”按钮即认为向管理服务器发送了登录请求。在实际应用中,管理服务器确认该登录信息有效的情况下,向客户端反馈登录信息有效的确认结果,具体的,向管理服务器发送登录请求是JS调用OC,当管理服务反馈确认结果时,是OC调用JS,展示第一文件操作面板。
在展示第一文件管理面板之后,可以通过第一文件管理面板选择目标文件的目标存储路径,客户端可以通过第一文件管理面板的展示信息获得目标存储路径,具体的,可以通过JS与OC调用获取目标存储路径。在实际应用中,向管理服务器发送的第一请求中包含目标存储路径,管理服务器可以根据目标存储路径确定第一存储位置。
需要说明的是,在接收到通过第一登录面板或者第一文件管理面板发送的取消请求,则关闭对应的面板,示例性的,如果接收通过第一登录面板发送的取消请求,则会关闭该第一登录面板。
在本发明的一个优选实施例中,在根据所述第一存储位置,上传所述待上传文件块之后,还包括:
通过所述第一文件管理面板展示所述目标文件的上传进度。
在实际应用中,当上传待文件块之后,可以通过第一文件管理面板显示目标文件的上传进度,上传进度可以以百分比的形式显示,也可以以已上传的文件大小显示,具体的,显示方式是现有技术,在这里不进行赘述,参考迅雷等下载文件时进度显示的方式。
在本发明的一个优选实施例中,方法可以还包括:
通过所述第一文件管理面板向所述管理服务器发送第一对象新建请求;
接收所述管理服务器反馈的针对所述第一对象新建请求的结果信息;
根据所述结果信息在所述的第一文件管理面板中显示新建的第一对象。
在实际应用中,这里所说的第一对象新建请求可以为文件夹新建请求,示例性的,可以通过图3中的“新建文件夹”按钮发送第一对象新建请求,第一对象新建请求中还可以携带被新建的第一对象存储位置、名称等信息。第一文件管理面板显示的新建的第一对象,可以为在第一对象的存储位置,显示带有第一对象名称的文件夹。
在本发明的一个优选实施例中,方法可以还包括:
接收通过所述第一文件管理面板发送的第一退出登录请求;
根据所述第一退出登录请求,断开与所述管理服务器之间的连接。
示例性的,可以通过图3中的“退出”按钮发送第一退出登录请求,当断开管理服务器之间的连接,则展示如图4所示的第一文件管理面板。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。同时,在本发明实施例中,提供针对云存储***的第一操作面板以供用户操作,这样无需使用单独设置的云存储***的客户端,简化了用户上传文件的步骤,为用户操作云存储***中的文件提供了极大的便利性,节省了用户的时间,提升了用户体验。
图5为本发明实施例所提供的文件上传方法的第三种流程示意图。基于图1所提供的实施例,本发明实施例所提供的一种文件上传方法,在S101与S102之间,还包括S108和S109,其中,
S108:向所述管理服务器发送获取目标文件的标识信息的获取请求。
存储服务器同一时间可能会存储多个文件,因为文件是以文件块的形式进行存储,为了使得上传到存储服务器中的文件块能够正确地存储,不会与其他文件的文件块存储发生错乱,需要获取目标文件的标识信息,在每次与管理服务器或存储服务器通信时,携带目标文件的标识信息,这样避免了因多个文件同时上传造成错乱的情况的发生。
在实际应用中,该获取请求中包含了目标文件的大小、名称及在客户端中该目标文件所在父目录的标识信息。管理服务器根据获取请求确定目标文件在云存储***中的标识信息。
S109:接收所述管理服务器反馈的第二信息,其中所述第二信息中包括所述目标文件的标识信息。
具体的,第一请求还包括:所述目标文件的标识信息。
所述第一存储位置是所述管理服务器根据所述目标文件的标识信息确定的。
在向管理服务器发送第一请求中携带目标文件的标识信息,管理服务器可以根据目标文件的标识信息确定第一存储位置。管理服务器可以根据目标文件的标识信息,确定是否已经目标文件的文件块上传,如果有,根据已经上传文件块的存储位置确定第一存储位置,如果没有,根据目标文件的标识信息,选择在存储服务器中选择存储位置。
具体的,所述第二信息包括所述目标文件的当前版本信息。
管理服务器根据目标文件的名称确定目标文件的当前版本信息,如果管理服务器中记载有该目标文件的名称对应的上传记录,则该目标文件存在历史版本已经上传,则该目标文件的当前版本信息是第几版本,示例性的,在管理服务器中该目标文件的名称对应的上传记录有2个,则目标文件的当前版本信息为地第3版。目标文件的版本信息有利于数据备份,如果将本地或者存储服务器中存储的文件删除或丢失,根据目标文件的当前版本信息,可以知道之前是否有文件已经存储在存储服务器,如果有,则可以在存储服务器中获取目标文件,在实际应用中,通过查看历史版本信息或回收站,获取目标文件,确保文件不会丢失。同时,通过当前版本信息,可以确定目标文件是否存在实例版本,如果存在,可以根据查看历史版本,查看目标文件的修改内容,同时可以查看上传的文件历史版本是否上传错误,即能够通过当前版本信息进行纠错。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。同时,基于目标文件的标识信息,保证在上传的过程中不会出现文件块上传错乱的情况。
在本发明的另一个具体实施例中,参见图6,提供了文件上传的方法的第四种流程示意图,与图5所示实施例相比,本实施例中,根据所述第一存储位置,上传所述待上传文件块(S106),包括:
S1061:将所述待上传文件块中的一个文件块确定为目标文件块。
当待上传文件块只有一块的时候,将该待上传文件块确定为目标文件块;当待上传文件块不止一块的时候,可以随机选择一个文件块,将选择的文件块确定为目标文件块,也可以将待上传文件块中的文件块进行排序,具体的,可以根据待上传文件块中的文件块的块号进行排序,将排序最靠前的文件块确定为目标文件块,也可以将排序最靠后的文件块确定为目标文件块。本发明实施例只是以上述为例进行说明,实际应用中,确定目标文件块的方式并不仅限于上述几种。
S1062:向所述存储服务器发送第二请求。
需要说明的是,所有向存储服务器发送的请求为http请求或https请求。
S1063:根据所述第一存储位置,上传所述目标文件块。
当第一存储位置中存储位置与目标文件块之间存在对应关系时,可以将目标文件上传至对应的存储位置,当然,也可以在第一存储位置中随机选择一个存储位置,将目标文件块上传至选择的存储位置,在第一存储位置只有起始存储位置时,根据起始存储位置确定目标文件块的存储位置,上传该目标文件块。
S1064:在所述待上传文件块未全部上传的情况下,从未上传的文件块中选择文件块,并将所述目标文件块更新为所选择的文件块,返回执行S1062,直至所述待上传文件块全部上传完成。
在待上传文件块为多个时,由于上传是一个一个地串行上传,当一个文件块上传完成时,需要上传下一个文件块,可以未上传的文件块中选择一个文件块确定为目标文件块,具体选择的方法可以参见上述确定目标文件块的方法,在这里不进行赘述。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。
在本发明的另一个具体实施例中,参见图7,提供了文件上传的方法的第五种流程示意图,与图6所示实施例相比,本实施例中,根据所述第一存储位置,上传所述目标文件块(S1063)之后,还包括:
S1065:在接收到所述存储服务器反馈的上传完成的信息情况下,向所述管理服务器发送查询请求,其中,所述查询请求用于查询所述目标文件块是否上传成功。
具体的,所述第二请求包括:所述待上传文件块中各文件块的第一哈希值,其中,所述第一哈希值为:计算所述待上传文件块中每一文件块存储的数据的哈希值得到的。
需要说明的是,第一请求中包含的第一哈希值的数量与待上传文件块中的文件块的数量相同,具体的,第一哈希值为计算待上传文件块中的每一文件中存储的哈希值得到的。在实际应用中,第一哈希值可以为md5(Message Digest Algorithm 5,消息摘要算法第五版)值,也可以是sha1(Secure Hash Algorithm 1,安全哈希算法)值。当然,第一哈希值还可以为RIPEMD(RACE Integrity Primitives Evaluation Message Digest,RACE原始完整性校验消息摘要)值,当然,第一哈希值并不仅限于上述几种。
S1066:接收所述管理服务器反馈的查询结果。
存储服务器在确定目标文件块反馈的上传完成的信息后,会向管理服务器发送查询请求,管理服务器将接收到该查询请求时,记录该目标文件块已经上传,并向存储服务器发送给验证请求,该验证请求包含目标文件的标识信息及块号,存储服务器根据确定请求确定目标文件块,根据目标文件块的第一哈希值,验证目标文件块的完整状态,并向管理服务器反馈验证结果,管理服务器基于验证结果向客户端查询结果。需要说明的是,根据目标文件块的第一哈希值,验证目标文件块的完整状态是现有技术,在这里不进行赘述。
S1067:在所述查询结果表明上传失败时,判断所述目标文件块的上传次数是否超过第一预设次数;其中,所述查询结果是所述存储服务器根据所述第一哈希值,检查所述待上传文件块的完整状态后确定的。
存储服务器根据目标文件块的第一哈希值验证目标文件块的完整性,如果验证结果为完整,则查询结果为上传成功,则执行S1064,如果验证结果为不完整,则查询结果为上传失败,则判断目标文件块的上传次数是否超过第一预设次数,第一预设次数可以根据实际情况设置,示例性的,第一预设次数可以为3次。在本发明实施例中设置了第一预设次数,不会因为一个文件块的一个上传失败,导致目标文件的上传失败,减少了上传失败机率。在本发明实施例中,在确定上一个文件块上传成功后,才会上传下一个文件块,当出现网络故障的时候,可以从已经上传的部分开始继续上传未完成的部分,而没有必要从头开始上传下载,这样可以实现断点续传,从而可以节省时间,提高速度。
S1068:显示上传失败的提示。
当目标文件块的上传次数超过第一预设次数,则显示上传失败的提示,具体的,可以在第一文件管理面板上显示上传失败的提示,这里所说的显示失败的提示,是通过OC语言与JS语言的交互实现的,在本发明实施例中,在上传的过程中,还会显示上传的进度,上传进度可以在目标文件块上传完成增加,也可以在待上传文件块上传完成后增加,需要说明的是,当显示上传失败的信息时,不会再进行上传操作,只有再次接收到目标文件的上传请求时,才会进行文件的上传,上传失败的文件对应的文件块,存储服务器可以删除。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。
在本发明的另一个具体实施例中,参见图8,提供了文件上传的方法的第六种流程示意图,与图7所示实施例相比,本实施例中,根据所述第一存储位置,上传所述目标文件块(S1063)之前,还包括:
S1069:利用加密算法及自身记录的第一密钥,对所述目标文件块进行加密。
具体的,所述根据所述第一存储位置,上传所述待上传文件块,包括:
根据所述第一存储位置,上传加密后的所述目标文件块。
在实际应用中,加密算法可以为AES(Advanced Encryption Standard,高级加密标准)256加密算法,AES256加密算法是美国军方的一种加密算法。AES是一种对称密钥算法,使用128、192或256位密钥,并且用128位数据块分组对数据进行加密和解密。AES对不同密钥大小的命名方式为AES-x,其中x是密钥大小。在本发明实施例中,第一密钥可以是256位的密钥,则加密算法为AES256加密算法。当然,加密算法并不仅限于上述算法,还可以是其他可以实现加密的算法,在这里不进行一一列举。利用加密算法及记录的密钥对文件块加密的具体实现是现有技术,在这里不进行赘述。对文件块进行加密,保证了在上传过程中数据的安全。
需要说明的是,在实际应用中,第一请求中还包含待上传文件块中加密后的每一文件块的sha1值和md5值,管理服务器会存储sha1值和md5值,用于完成对目标文件的下载。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。对文件进行加密,保证了上传过程中数据的安全。
在本发明的另一个具体实施例中,参见图9,提供了文件上传的方法的第七种流程示意图,与图5所示实施例相比,本实施例中,在S107之后,还包括S110、S111和S112。
S110:向所述管理服务器发送文件块上传完成确认请求。
在分割好的文件块全部上传完成后,向管理服务器发送确定请求,管理服务器在接收到确定请求后确定是否所有文件块全部上传。
S111:接收所述管理服务器反馈的确认结果。
在实际应用中,确定请求中包含目标文件的标识信息和块数,因为同一时间可能会存在多个文件在上传,需要根据标识信息确定目标文件,需要说明的是,在获取目标文件的标识信息后,向管理服务器或存储服务器发送的请求都携带目标文件的标识信息。管理服务器根据目标文件的块数及自身记录的已经上传的文件块的块号,确定有无遗漏的文件块,并反馈确定结果。
S112:在所述确认结果表明存在遗漏的文件块后,将所述遗漏的文件块上传至所述第一存储位置;并返回执行S110。
在确认结果为没有文件块遗漏时,管理服务器将目标文件块的所有文件块拼接成目标文件并进行显示,具体的,可以参考现有的文件下载过程中,当文件没有下载完成,该文件不可读且不显示文件对应的图标,当文件下载完成文件可读,且显示文件对应的图标,这里所说的将文件块拼接成目标文件就是使目标文件可读且显示目标文件对应的图标,具体的拼接方法是现有技术,拼接也可能失败,拼接过程中存在拼接次数的上限,如果拼接次数达到上限还没拼接成功,则向客户端反馈拼接失败的信息,客户端接收到拼接失败的信息后,显示上传失败的提示。管理服务器在拼接完成后,计算拼接后的目标文件中存储的数据的sha1值,与获取请求中携带的sha1值进行比对,这里所说的sha1值是通过计算目标文件存储的数据的哈希值得到的,如果两个sha1值不同,则说明拼接后的目标文件已经损坏,通知客户端目标文件已损坏的信息,客户端接收到该信息后,显示上传失败的提示。在实际应用中,获取中还包含目标文件的md5值,md5值是通过计算目标文件中存储的数据得到的,需要说明的是,sha1值与md5均是哈希值,只是长度不同,md5值是128位,sha1值是160位。管理服务器还可以利用md5值验证文件是否损坏。
在实际应用中,在确认结果表明存在文件块遗漏时,管理服务器反馈的确认结果中包含遗漏的文件块的块号,当只有一个文件块遗漏时,上传该文件块,上传遗漏文件块的步骤与上述上传文件块的步骤相同,在这里不进行赘述。当遗漏的文件块不只一块时,则所有遗漏的文件块为待上传文件块,具体的上传方法与上述上传待上传文件块的方法相同,在这里不进行赘述。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。
图10为本发明实施例提供的文件下载方法的第一种流程示意图,方法包括:
S201:向云存储***的管理服务器发送针对第一文件的下载请求,其中,所述第一文件包括至少一个文件块。
在本发明实施例中,可以是具有下载功能的客户端向云存储***的管理服务器发送针对第一文件的下载请求,这里所说的具有下载功能的客户端可以为专有下载功能的客户端,也可以为带有下载功能的客户端。专有下载功能的客户端可以为只具有与上传下载等相关功能的客户端,即专门为上传下载而定制的客户端,而带有下载功能的客户端除了具有下载功能,还具有其他功能,示例性的,可以为对文件的编辑功能等等。带有下载功能的客户端可以通过具有下载功能的插件实现。带有下载功能的客户端,示例性的,可以为带有下载功能的PS、办公软件等等,在实际应用中,带有下载功能的客户端可以通过具有下载功能的插件实现文件的下载。需要说明的是,该插件除了具有下载功能,还可以具有上传功能。当然,这里所说的下载功能的客户端可以安装在Mac***中,也可以安装在Windows***中,Windows***是美国微软公司开发的一种操作***。
在本发明实施例中,插件与安装有该插件的客户端需要联动才能实现文件的下载。具体的,插件与该客户端之间的联动为:
插件会监测到客户端的打开、保存、新建等事件,这些事件的监测利用了客户端的SDK(Software Development Kit,软件开发工具包)来实现的,具体的实现过程为:下载客户端的SDK,基于客户端的SDK,按照所需要的功能进行开发,可以实现对事件的监测。当该插件监测到事件后,创建事件的描述,然后,转换事件的各个参数,根据事件的不同,转换后的参数不同,即别名不同,转换参数可以使得插件兼容各种操作;进而,对事件进行执行,根据事件转换后的参数,枚举响应事件,这里所说的枚举响应事件是转换后的参数与事件存在对应关系,将转换后的参数与事件进行逐个匹配,示例性的,假设转换后的参数为1234,1234对应的事件为保存,则1234与保存之间存在对应关系。然后,对事件进行执行,返回错误码,标识执行结果,示例性的,错误码为0,代表事件执行成功,错误码为非0,代表事件执行失败。最后,释放执行该事件所用到的参数内存占用,返回执行结果,即错误码。
下面以在PS中打开下载的第一文件为例说明插件与客户端之间的联动:
当第一文件下载完后,插件会创建事件的描述,具体的,可以通过sPSActionDescriptor->Make,创建对获取目标文件的本地位置的事件描述,sPSActionDescriptor->Make是一种全局的事件响应函数;然后,转化事件的参数,具体的,可以通过sPSActionDescriptor->PutAlias,进行参数的转换,通过给定的key(键),设置一个C标准格式的行为别名,这样做可以兼容各种操作,根据不同的事件,别名不同;再通过sPSActionDescriptor->PutInteger进行转化参数,通过给定的key(键),设置一个C标准格式的行为的数字ID(identification,身份标识号);再通过sPSActionControl->Play,执行第一文件打开之一事件并返回错误码,最后通过sPSActionReference->Free,释放执行该事件所用到的参数内存占用,并返回错误码。
S202:接收所述管理服务器反馈的第三信息,其中,所述第三信息中包括所述第一文件的文件块数量。
需要说明的是,下载请求中包含了第一文件的标识信息,管理服务器在接收到该下载请求后,根据下载请求中第一文件的标识信息与自身存储的第一文件的信息之间的对应关系,反馈第三信息,第三信息包含了第一文件块的文件块数量,客户端基于第一文件的文件块数量可以确定待下载文件块,也可以确定第一文件的文件块是否全部下载完成。
具体的,所述第三信息还包括:所述第一文件的当前版本信息。
这里所说的第一文件的当前版本信息与文件上传方法实施例中目标文件的当前版本信息的作用相同,在这里不进行详述。
S203:基于所述文件块数量,确定待下载文件块。
当文件块数量只有一块时,将该文件块确定为待下载文件块,当文件块书数量不止一块的时候,可以将固定数量的文件块确定为待下载文件块,示例性的,假设固定数量为16块,分割好的文件块有4块,则将这4块确定为待下载文件块,如果分割好的文件有20块,则将其中的16块确定为待下载文件块,具体的,可以在20个文件块中随机选择16块;在实际应用中,第一文件的文件块中每一块有携带有块号,块号可以是数字,也可以为是字母,确定待下载文件块可以根据文件块的块号的排序确定的。示例性的,假设有5块,分别为文件块1-5,固定数量是两块,则可以将文件块1和文件块2确定为待下载文件块。当然并不不仅限于上述确定待下载文件块的方法,在这里不进行一一列举。
S204:向所述管理服务器发送下载所述待下载文件块的第三请求,其中所述第三请求包含所述待下载文件块的数量。
在实际应用中,第三请求中不仅包含待下载文件块的数量,还包含了待下载文件块的块号,进一步的,还包含第一文件的标识信息,管理服务器在接收到第三请求,根据第三请求确定第二存储位置。
在本发明的一个优选实施例中,在所述向所述管理服务器发送下载所述待下载文件块的第三请求之后,还包括:
接收所述管理服务器反馈的第二哈希值,其中,所述第二哈希值为:通过计算所述待下载文件块中每一文件块存储的数据的哈希值得到的。
需要说明的是,管理服务器反馈的第二哈希值数量与待下载文件块中的文件块的数量相同,且第二哈希值与待下载文件块中的文件块存在一一对应关系。第二哈希值可以为md5值,也可以为sha1值,当然也可以为其他的哈希值。第一哈希值与第二哈希值可以是相同类型的哈希值,也可以是不同类型的哈希值。当第一哈希值与第二哈希值是相同类型的哈希值时,管理服务器还会反馈待下载文件块的第一哈希值。
S205:接收所述管理服务器反馈的所述待下载文件块的第二存储位置。
第二存储位置由第一文件的标识信息、待下载文件块的数量确定的,如果一个待下载文件块对应了一个存储位置,则第二存储位置中包含了与待下载文件块的数量相同的存储位置,进一步的,待下载文件块的块号与存储位置之间存在对应关系,根据该对应关系可以确定第二存储位置。
S206:从所述第二存储位置下载所述待下载文件块,在所述第一文件未下载完毕的情况下,返回执行S203,直至所述第一文件下载完成。
在实际应用中,当第一文件下载完成,将第一文件的所有文件块合并成一个可读的第一文件,合并的方法与上述文件上传过程管理服务器对文件块的合并方法相同,在这里不进行赘述。带有上传功能的客户端判断自身是否能够打开该第一文件,如果能,则直接打开,对第一文件进行编辑,在对第一文件编辑完成后,则可以直接将编辑后的第一文件上传至存储服务器。如果不能,调动shell(壳)命令,利用默认程序打开第一文件。shell基本上是一个命令解释器,可以调用相应的应用程序。
在本发明实施例中,具有下载功能的客户端能够随时下载之间编辑的文件,文件存储在存储服务器,不用占用本地空间,彻底解放本地存储空间不足的后顾之忧,也防止文件损坏或丢失。同时,可以直接下载文件,省去了寻找文件的时间,也省去了安装专有上传功能客户端的步骤,进一步的也省去了打开上传功能客户端的步骤,简化了带有上传功能的客户端的办公。采用网页网盘进行存储文件,但由于网页的性能不佳,相较于现有技术,本发明实施例用户体验更好,相较于现有的利用存储介质存储文件,由于存储介质随时可能损坏,不利于数据的备份和安全,也省去了寻找存储介质的时间。在本发明实施例中,将文件上传至存储服务器,多个客户端均可以查看该文件。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。
图11为本发明实施例所提供的文件下载方法的第二种流程示意图。基于图10所提供的实施例,本发明实施例所提供的一种文件下载方法,在所述向云存储***的管理服务器发送针对第一文件的下载请求(S201)之前,还包括:
S207:监测是否接收到用于展示第二文件操作面板的第二展示指令。
需要说明的是,第二展示指令是用于展示第二文件操作面板的展示指令,进一步的,可以说是展示客户端中文件操作面板的展示指令,具体的,客户端中的插件当监测到文件的保存文件事件、打开文件事件等等,均可以默认为接收到第二展示指令。需要说明的是,在本发明实施例中所说的客户端均为带有下载功能的客户端,进一步的,是带有下载功能的插件的客户端。
S208:展示所述第二文件操作面板。
在实际应用中,该第二文件操作面板可以是由JavaScript语言编写的页面,是UI设计。具体的,第二文件操作面板是插件其中一个界面,具体的展示方法是JS与OC交互实现的,在这里不进行赘述。示例性的,第二文件操作面板与图3中的第一文件操作面板的界面设计相似。需要说明的是,在本发明实施例中所说的插件均为带有下载功能的插件。
S209:判断是否成功登录云存储***的管理服务器。
在实际应用中,在下载的时候,客户端需要与云存储***建立连接,才能完成第一文件的下载,判断是否与云存储服务器建立连接,可以为判断是否成功登录云存储***的管理服务器。
S210:在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板。
在成功登录云存储***的管理服务器的情况下,在距离第二文件操作面板的第二预设位置展示第二文件操作面板。这里所说的第二预设位置还可以是第二文件操作面板的左侧、右侧、上侧、下侧等位置,本发明实施例对此不做限定。
S211:展示第二登录面板,并通过所述第二登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板。
在实际应用中,如果没有成功登录管理服务器,则展示第二登录面板,可以通过第二登录面板上的登录信息输入框输入登录信息,输入完毕后向管理服务器发送了登录请求。在实际应用中,管理服务器确认该登录信息有效的情况下,向客户端反馈登录信息有效的确认结果,具体的,向管理服务器发送登录请求是JS调用OC,当管理服务反馈确认结果时,是OC调用JS,展示第二文件操作面板。示例性的,第二登录面板与图4中的第一登录面板的界面设计相似。
S212:获得根据所述第二文件管理面板的展示信息确定的目标下载路径。
在展示第二文件管理面板之后,可以通过第二文件管理面板选择第一文件的目标下载路径,客户端中的插件可以通过第二文件管理面板的展示信息获得目标存储路径。
所述向云存储***的管理服务器发送针对第一文件的下载请求,包括:
通过所述第二文件管理面板向云存储***的管理服务器发送针对第一文件的下载请求;
所述下载请求中还包括:所述目标下载路径;
所述接收所述管理服务器反馈的所述待下载文件块的第二存储位置,包括:
接收所述管理服务器根据所述目标下载路径确定的第二存储位置。
在本发明实施例中,在从所述第二存储位置下载所述待下载文件块,方法还可以包括:
通过所述第二文件管理面板展示所述第一文件的下载进度。
在本发明实施例中,方法还可以包括:
通过所述第二文件管理面板向所述管理服务器发送第三对象新建请求;
接收所述管理服务器反馈的针对所述第三对象新建请求的结果信息;
根据所述结果信息在所述的第三文件管理面板中显示新建的第三对象。
在本发明实施例中,方法还可以包括:
接收通过所述第二文件管理面板发送的第三退出登录请求;
根据所述第三退出登录请求,断开与所述管理服务器之间的连接。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。同时,在本发明实施例中,提供针对云存储***的第二操作面板以供用户操作,这样无需使用单独设置的云存储***的客户端,简化了用户下载文件的步骤,为用户操作云存储***中的文件提供了极大的便利性,节省了用户的时间,提升了用户体验。
在本发明的另一个具体实施例中,参见图12,提供了文件下载的方法的第三种流程示意图,与图10所示实施例相比,本实施例中,从所述第二存储位置下载所述待下载文件块(S206),包括:
S2061:将所述待下载文件块中的一个文件块确定为第一文件块。
确定第一文件块的方式与确定目标文件块的方式相同,在这里不进行赘述。
S2062:向所述存储服务器发送的第四请求。
在实际应用中,第四请求包了第一文件块的标识信息及第一文件块的块号,存储服务器可以根据第四请求确定第一文件块的具***置。
在具体应用中,当第一哈希值与第二哈希值是相同类型的哈希值时,第四请求中包含第一文件块的第二哈希值,当第一哈希值与第二哈希值是不同类型的哈希值时,第四请求中包含第一文件块的第一哈希值。
S2063:从所述第二存储位置下载所述待下载所述第一文件块。
具体的,从第一文件块对应的存储位置下载第一文件块,第二存储位置中包含了第一文件块对应的存储位置。
S2064:在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块,返回执行向S2062,直至所述待下载文件块全部下载完成。
从未下载的文件块中选择文件块的方式与上述确定第一文件块的方式相同,在这里不进行赘述。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。
在本发明的另一个具体实施例中,参见图13,提供了文件下载的方法的第三种流程示意图,与图10所示实施例相比,本实施例中,在S2063之后,还包括S2065、S2066和S2067。
S2065:根据所述管理服务器反馈的第二哈希值,确定所述第一文件块是否完整,其中,所述第二哈希值是所述管理服务器在接收到所述第三请求时反馈的。
客户端根据第二哈希值确定第一文件块对否完整的方法与存储服务器根据第一哈希值验证目标文件块是否完整的方式相同,在这里不进行赘述。需要说明的是,根据管理服务器反馈的第二哈希值,确定第一文件块对否完整,实际上,管理服务器反馈的第二哈希值与第一文件块之间存在对应关系,根据该对应关系确定第一文件块的第二哈希值,根据第一文件块的第二哈希值确定第一文件块是否完整。
在确定第一文件块完整的情况下,返回执行S2064。
S2066:判断所述第一文件块的下载次数是否超过第二预设次数。
需要说明的是,第二预设次数可以根据实际情况设置,示例性的,可以是三次,也可以是五次。当第一文件块的下载次数没有超过第二预设次数时,返回执行S2063。
S2067:显示下载失败的信息。
当第一文件块的下载次数超过第二预设次数,则显示下载失败的提示,示例性的,可以在第一文件管理面板上显示下载失败的提示,这里所说的显示失败的提示,是通过OC语言与JS语言的交互实现的,在本发明实施例中,在下载的过程中,还会显示下载的进度,下载进度可以在第一文件块下载完成时增加,也可以在待下载文件块下载完成后增加,下载进度可以以百分比的形式显示,也可以以已下载的文件大小显示,具体的,显示方式是现有技术,在这里不进行赘述,参考迅雷等下载文件时进度显示的方式。需要说明的是,当显示下载失败的信息时,不会再进行下载操作,只有再次接收到目标文件的下载请求时,才会进行文件的下载,下载失败的文件对应的文件块,存储服务器可以删除。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。
在本发明的另一个具体实施例中,参见图14,提供了文件下载的方法的第五种流程示意图,与图11所示实施例相比,本实施例中,在S2063之后,还包括S2068。
S2068:基于解密算法及自身记录的第二密钥,对所述第一文件块进行解密。
本领域技术人员可以理解的是,解密是加密的逆过程,在本发明实施例中解密算法与文件上传过程中的加密算法相对应,如果加密算法是AES加密算法,则解密算法是AES解密算法。需要说明的是,第一密钥与对第一文件块进行加密时所使用的密钥相同,基于解密算法及自身记录的第二密钥,对第一文件块进行解密是现有技术,在这里不进行赘述。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。下载的文件块是加密文件块,保证下载过程中数据的安全。
与图1所示的方法实施例相对应,图15为本发明实施例提供的文件上传装置的结构示意图,该装置包括:第一接收模块301,分割模块302,第一确定模块303,第一发送模块304,第二接收模块305,第一上传模块306和更新模块307。
第一接收模块301,用于接收针对目标文件的上传请求。
分割模块302,用于将所述目标文件按照预设分割规则分割成文件块。
第一确定模块303,用于在分割好的文件块中确定待上传文件块。
第一发送模块304,用于向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量。
第二接收模块305,用于接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件块在云存储***的存储服务器中的存储位置。
第一上传模块306,用于将所述待上传文件块上传至所述第一存储位置。
更新模块307,用于在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将所述待上传文件块更新为所选择的文件块,并返回执行所述第一发送模块304,直至分割好的文件块全部上传完成。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。
与图2所示的方法实施例相对应,该第一接收模块,可以包括:第一监测子模块、第一展示子模块和第一接收子模块。
第一监测子模块,用于监测是否接收到用于展示第一文件操作面板的第一展示指令;
第一展示子模块,用于在第一监测子模块的监测结果为是的情况下,展示所述第一文件操作面板;
第一接收子模块,用于接收通过所述第一文件操作面板发送的针对目标文件的上传请求。
在本发明的一个具体实施例中,所述第一接收模块,还包括:第一判断子模块、第二展示子模块、第三展示子模块和第一获得子模块。
第一判断子模块,用于判断是否成功登录云存储***的管理服务器;
第二展示子模块,用于在所述第一判断子模块的判断结果为成功的情况下,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
第三展示子模块,用于在所述第一判断子模块的判断结果为失败的情况下,展示第一登录面板,并通过所述第一登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
第一获得子模块,用于获得根据所述第一文件管理面板的展示信息确定的目标存储路径;
所述第一请求中还包括:所述目标存储路径;
所述第二接收模块,具体用于:
接收所述管理服务器根据所述目标存储路径确定的第一存储位置。
在本发明的一个优选的实施例中,所述装置,还包括:第一展示模块。
第一展示模块,用于通过所述第一文件管理面板展示所述目标文件的上传进度。
在本发明的一个优选的实施例中,所述装置,还包括:第六发送模块。
第六发送模块,用于向所述管理服务器发送第一对象新建请求;
第八接收模块,用于接收所述管理服务器反馈的针对所述第一对象新建请求的结果信息;
第一显示模块,用于根据所述结果信息在所述的第一文件管理面板中显示新建的第一对象。
在本发明的一个优选的实施例中,所述装置,还包括:第九接收模块。
第九接收模块,用于接收通过所述第一文件管理面板发送的第一退出登录请求;
第一断开模块,用于根据所述第一退出登录请求,断开与所述管理服务器之间的连接。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。同时,在本发明实施例中,提供针对云存储***的第一操作面板以供用户操作,这样无需使用单独设置的云存储***的客户端,简化了用户上传文件的步骤,为用户操作云存储***中的文件提供了极大的便利性,节省了用户的时间,提升了用户体验。
与图5所示的方法实施例相对应,该装置还包括:第二发送模块和第三接收模块。
第二发送模块,用于向所述管理服务器发送获取目标文件的标识信息的获取请求。
在一个具体实施例中,所述第一请求还包括:所述目标文件的标识信息;所述第一存储位置是所述管理服务器根据所述目标文件的标识信息确定的。
第三接收模块,用于接收所述管理服务器反馈的第二信息,其中所述第二信息中包括所述目标文件的标识信息。具体的,所述第二信息包括所述目标文件的当前版本信息。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,相较于现有技术,减少了文件上传过程中的出错机率。同时,基于目标文件的标识信息,保证在上传的过程中不会出现文件块上传错乱的情况。
与图6所示的方法实施例相对应,该第一上传模块306,包括:第一确定子模块、第一发送子模块、上传子模块和第一更新子模块。
第一确定子模块,用于将所述待上传文件块中的一个文件块确定为目标文件块。
第一发送子模块,用于向所述存储服务器发送第二请求。
所述第二请求包括:所述待上传文件块中各文件块的第一哈希值,其中,所述第一哈希值为:通过计算所述待上传文件块中每一文件块存储的数据的哈希值得到的。
上传子模块,用于根据所述第一存储位置,上传所述目标文件块。
第一更新子模块,用于在所述待上传文件块未全部上传的情况下,从未上传的文件块中选择文件块,并将所述目标文件块更新为所选择的文件块,返回执行所述第一发送子模块,直至所述待上传文件块全部上传完成。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。
与图7所示的方法实施例相对应,第一上传模块306还包括:第二发送子模块、第一接收子模块、第一判断子模块和第一显示子模块。
第二发送子模块,用于在接收到所述存储服务器反馈的上传完成的信息情况下,向所述管理服务器发送查询请求,其中,所述查询请求用于查询所述目标文件块是否上传成功。
第一接收子模块,用于接收所述管理服务器反馈的查询结果。
第一判断子模块,用于在所述查询结果表明上传失败时,判断所述目标文件块的上传次数是否超过第一预设次数;其中,所述查询结果是所述存储服务器根据所述第一哈希值,检查所述待上传文件块的完整状态后确定的。
第一显示子模块,用于在所述判断子模块的判断结果为是的情况下,显示上传失败的提示。
所述上传子模块,还用于在所述第一判断子模块的判断结果为否的情况下,根据所述第一存储位置,上传所述目标文件块。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。
与图8所示的方法实施例相对应,第一上传模块还包括:加密子模块。
加密子模块,用于利用加密算法及自身记录的第一密钥,对所述目标文件块进行加密。
所述上传子模块,具体用于:根据所述第一存储位置,上传加密后的所述目标文件块。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。对文件进行加密,保证了上传过程中数据的安全。
与图9所示的方法实施例相对应,该装置还包括:第三发送模块、第四接收模块和第二上传模块。
第三发送模块,用于在分割好的文件块全部上传完成之后向所述管理服务器发送文件块上传完成确认请求。
第四接收模块,用于接收所述管理服务器反馈的确认结果。
第二上传模块,用于在所述确认结果表明存在遗漏的文件块后,将所述遗漏的文件块上传至所述第一存储位置;并返回执行所述第三发送模块310。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。
与图10所示的方法实施例相对应,图16为本发明实施例提供的文件下载装置的结构示意图,该装置包括:第四发送模块401、第五接收模块402、第二确定模块403、第五发送模块404、第六接收模块405和下载模块406。
第四发送模块401,用于向云存储***的管理服务器发送针对第一文件的下载请求,其中,所述第一文件包括至少一个文件块。
第五接收模块402,用于接收所述管理服务器反馈的第三信息,其中,所述第三信息中包括所述第一文件的文件块数量。
第二确定模块403,用于基于所述文件块数量,确定待下载文件块。
第五发送模块404,用于向所述管理服务器发送下载所述待下载文件块的第三请求,其中所述第三请求包含所述待下载文件块的数量。
第六接收模块405,用于接收所述管理服务器反馈的所述待下载文件块的第二存储位置。
下载模块406,用于从所述第二存储位置下载所述待下载文件块,在所述第一文件未下载完毕的情况下,返回执行所述第二确定模块403,直至所述第一文件下载完成。
具体的,所述第三信息包括:所述第一文件的当前版本信息。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。
与图11所示的方法实施例相对应,该装置包括:第一监测模块、第二展示模块、第一判断模块、第三展示模块、第四展示模块和第一获得模块。
第一监测模块,用于监测是否接收到用于展示第二文件操作面板的第二展示指令;
第二展示模块,用于在所述第一监测模块的监测结果为是的情况下,展示所述第二文件操作面板;
第一判断模块,用于判断是否成功登录云存储***的管理服务器;
第三展示模块,用于在所述第一判断模块的判断结果为成功的情况下,在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板;
第四展示模块,用于在所述第一判断模块的判断结果为失败的情况下,展示第二登录面板,并通过所述第二登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板;
第一获得模块,用于获得根据所述第二文件管理面板的展示信息确定的目标下载路径;
所述第六接收模块,具体用于:
通过所述第二文件管理面板向云存储***的管理服务器发送针对第一文件的下载请求;
所述下载请求中还包括:所述目标下载路径;
所述第六接收模块,具体用于:
接收所述管理服务器根据所述目标下载路径确定的第二存储位置。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。同时,在本发明实施例中,提供针对云存储***的第二操作面板以供用户操作,这样无需使用单独设置的云存储***的客户端,简化了用户下载文件的步骤,为用户操作云存储***中的文件提供了极大的便利性,节省了用户的时间,提升了用户体验。
与图12所示的方法实施例相对应,所述装置,还包括第七接收模块。
第七接收模块,用于接收所述管理服务器反馈的第二哈希值,其中,所述第二哈希值为:通过计算所述待下载文件块中每一文件块存储的数据的哈希值得到的。
所述下载模块406,包括:第二确定子模块、第三发送子模块、下载子模块和第二更新子模块。
第二确定子模块,用于将所述待下载文件块中的一个文件块确定为第一文件块;
第三发送子模块,用于向所述存储服务器发送的第四请求。
下载子模块,用于从所述第二存储位置下载所述待下载所述第一文件块。
第二更新子模块,用于在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块,返回执行所述第三发送子模块。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。
与图13所示的方法实施例相对应,所述下载模块406,包括:第二接收子模块、第三确定子模块、第二判断子模块和第二显示子模块。
第二接收子模块,用于接收所述管理服务器反馈的第二哈希值,其中,所述第二哈希值为:计算所述待下载的文件块中存储的数据的哈希值得到的。
第三确定子模块,用于根据所述管理服务器反馈的第二哈希值,确定所述第一文件块是否完整,其中,所述第二哈希值是所述管理服务器在接收到所述第三请求时反馈的。
所述第二更新子模块,还用于在所述第三确定子模块的确定结果为是的情况下,在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块,返回执行所述第三发送子模块。
第二判断子模块,用于在所述第三确定子模块的确定结果为否的情况下,判断所述第一文件块的下载次数是否超过第二预设次数。
第二显示子模块,用于在所述判断子模块的判断结果为超过的情况下,显示下载失败的提示。
所述下载子模块,还用于在所述第二判断子模块的判断结果为不超过的情况下,从所述第二存储位置下载所述待下载所述第一文件块。
应用本发明实施例,通过对文件分块下载,每一个文件块下载的时间比较短,相较于现有技术,减少了文件下载过程中的出错机率。
与图14所示的方法实施例相对应,所述下载模块,还包括解密子模块。
解密子模块,用于基于解密算法及自身记录的第二密钥,对所述第一文件块进行解密。
应用本发明实施例,通过对文件分块上传,每一个文件块上传的时间比较短,文件块是一块一块地上传,相较于现有技术,减少了文件上传过程中的出错机率。下载的文件块是加密文件块,保证下载过程中数据的安全。
图17为本发明实施例提供的文件传输方法的流程示意图,方法包括:
S501:监测是否接收到用于第三文件操作面板的第三展示指令。
在本发明实施例中,可以是具有文件传输的客户端进行监测,这里所说的具有文件传输的客户端可以为专有文件传输功能的客户端,也可以为带有文件传输功能的客户端。专有文件传输功能的客户端可以为只具有与文件传输等相关功能的客户端,即专门为文件传输而定制的客户端,而带有文件传输功能的客户端除了具有文件传输功能,还具有其他功能,示例性的,可以为对文件的编辑功能等等。
带有文件传输功能的客户端,示例性的,可以为带有文件传输功能的PS,进一步的,该PS安装在Mac***中,当然带有文件传输功能的客户端还可以为办公软件、视频编辑软件、音频编辑软件、阅读软件等等。在实际应用中,带有文件传输功能的客户端可以通过具有文件传输功能的插件实现文件的传输。
在实际应用中,第三展示指令是用于展示第三文件操作面板的展示指令,进一步的,可以说是展示客户端中文件操作面板的展示指令,具体的,客户端中的插件当监测到文件的保存文件事件、打开文件事件等等,均可以默认为接收到第一展示指令。需要说明的是,在本发明实施例中所说的客户端均为带有文件传输功能的客户端,进一步的,是带有文件传输功能的插件的客户端。
S502:展示所述第三文件操作面板。
在接收到第三展示指令后,在客户端展示第三文件操作面板,在实际应用中,该第三文件操作面板可以是由JavaScript语言编写的页面,是UI设计。具体的,第三文件操作面板是插件其中一个界面,具体的展示方法是JS与OC交互实现的,在这里不进行赘述。需要说明的是,在本发明实施例中所说的插件均为带有文件传输功能的插件。
S503:接收通过所述第三文件操作面板发送的针对第二文件的文件传输指令。
在实际应用中,客户端与第三文件操作面板之间建立了连接,客户端可以接收通过第三文件操作面板文件传输指令。
S504:判断是否成功登录云存储***的管理服务器。
在文件传输的时候,客户端需要与云存储***建立连接,进一步,需要与云存储***中的管理服务器和存储服务器建立连接才能完成文件的传输,因此需要判断是否成功登录管理服务器。
S505:在距离所述第三文件操作面板的第三预设位置展示第三文件管理面板。
在成功登录管理服务器后,则在距离第三文件操作面板的第三预设位置展示第三文件管理面板。示例性的,在PS中的第三文件管理面板可以如图18所示,在图18中,第三文件管理面板位于第三文件操作面板的右侧。这里所说的第三预设位置还可以是第三文件操作面板的左侧、上侧、下侧等位置,本发明实施例对此不做限定。需要说明的是,在第三文件操作面板中的“从云盘打开”、“保存到云盘”中的云盘是本发明实施例中所说的云存储***。
S506:展示第三登录面板,并通过所述第三登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第三预设位置展示第二文件管理面板。
在实际应用中,如果没有成功登录管理服务器,则展示第三登录面板,示例性的,第三登录面板可以图19所示,可以通过第三登录面板上的登录信息输入框输入登录信息,输入完毕后,点击“登录”按钮即认为向管理服务器发送了登录请求。在实际应用中,管理服务器确认该登录信息有效的情况下,向客户端反馈登录信息有效的确认结果,具体的,向管理服务器发送登录请求是JS调用OC,当管理服务反馈确认结果时,是OC调用JS,展示第三文件操作面板。
S507:获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行所述第二文件的传输。
在展示第三文件管理面板之后,可以通过第三文件管理面板选择目标路径,客户端可以通过第一文件管理面板的展示信息获得目标路径,具体的,可以通过JS与OC调用获取目标存储路径。根据目标路径和文件传输指令进行传输。这里所说的文件传输可以为文件的上传或下载,具体的,文件的上传或下载方法,可以如上述内容所示,也可以是其他的上传或下载方法,在这里不进行限定。
需要说明的是,在接收到通过第一登录面板或者第一文件管理面板发送的取消请求,则会关闭对应的窗口,示例性的,如果接收通过第三登录面板发送的取消请求,则关闭该第三登录面板。
在本发明的一个优选的实施例中,在所述获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行文件传输之后,还包括:
通过所述第三文件管理面板展示所述第二文件的传输进度。
在实际应用中,在文件进行传输之后,可以通过第三文件管理面板显示第二标文件的传输进度,传输进度可以以百分比的形式显示,也可以以已传输的文件大小显示,具体的,显示方式是现有技术,在这里不进行赘述,参考迅雷等下载文件时进度显示的方式。
在本发明的一个优选的实施例中,所述方法还包括:
通过所述第三文件管理面板向所述管理服务器发送第二对象新建请求;
接收所述管理服务器反馈的针对所述第二对象新建请求的结果信息;
根据所述结果信息在所述第三文件管理面板中显示新建的第二对象。
在实际应用中,这里所说的第二对象新建请求可以为文件夹新建请求,示例性的,可以通过图18中的“新建文件夹”按钮发送第二对象新建请求,第二对象新建请求中还可以携带被新建的第二对象存储位置、名称等信息。第二文件管理面板显示的新建的第二对象,可以为在第二对象的存储位置,显示带有第二对象名称的文件夹。
在本发明的一个优选实施例中,方法可以还包括:
接收通过所述第三文件管理面板发送的第二退出登录请求;
根据所述第二退出登录请求,断开与所述管理服务器之间的连接。
示例性的,可以通过图18中的“退出”按钮发送第二退出登录请求,当断开管理服务器之间的连接,则展示如图19所示的第三文件管理面板。
应用本发明实施例,提供了针对云存储***的第三操作面板以供用户操作,这样无需使用单独设置的云存储***的客户端,简化了用户传输文件的步骤,为用户操作云存储***中的文件提供了极大的便利性,节省了用户的时间,提升了用户体验。
与图17所示的方法实施例相对应,图20为本发明实施例提供的文件传输装置的结构示意图,该装置可以包括:第二监测模块601、第五展示模块602、第十接收模块603、第二判断模块604、第六展示模块605、第七展示模块606和传输模块607。
第二监测模块601,用于监测是否接收到用于第三文件操作面板的第三展示指令;
第五展示模块602,用于在所述第二监测模块的监测结果为是的情况下,展示所述第三文件操作面板;
第十接收模块603,用于接收通过所述第三文件操作面板发送的针对第二文件的文件传输指令;
第二判断模块604,用于判断是否成功登录云存储***的管理服务器;
第六展示模块605,用于在所述第二判断模块604的判断结果为成功的情况下,在距离所述第三文件操作面板的第三预设位置展示第三文件管理面板;
第七展示模块606,用于在所述第二判断模块604的判断结果为失败的情况下,展示第三登录面板,并通过所述第三登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第三预设位置展示第二文件管理面板;
传输模块607,用于获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行所述第二文件的传输。
在本发明的一个优选的实施例中,所述装置,还可以包括:第八展示模块(图中未示出)。
第八展示模块,用于通过所述第三文件管理面板展示所述第二文件的传输进度。
在本发明的一个优选的实施例中,所述装置,还可以包括:第七发送模块、第十一接收模块和第二显示模块(图中未示出)。
第七发送模块,用于通过所述第三文件管理面板向所述管理服务器发送第二对象新建请求;
第十一接收模块,用于接收所述管理服务器反馈的针对所述第二对象新建请求的结果信息;
第二显示模块,用于根据所述结果信息在所述第三文件管理面板中显示新建的第二对象。
在本发明的一个优选的实施例中,所述装置,还可以包括:第十二接收模块和第二断开模块(图中未示出)。
第十二接收模块,用于接收通过所述第三文件管理面板发送的第二退出登录请求;
第二断开模块,用于根据所述第二退出登录请求,断开与所述管理服务器之间的连接。
应用本发明实施例,提供了针对云存储***的第三操作面板以供用户操作,这样无需使用单独设置的云存储***的客户端,简化了用户传输文件的步骤,为用户操作云存储***中的文件提供了极大的便利性,节省了用户的时间,提升了用户体验。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (40)
1.一种文件上传方法,其特征在于,应用于客户端中具有上传功能的插件,所述客户端还具有对文件的编辑功能,所述方法包括:
接收针对目标文件的上传请求;
将所述目标文件按照预设分割规则分割成文件块;
在分割好的文件块中确定待上传文件块;
向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量,所述第一请求还包括每一待上传文件块的块号;
接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件块在云存储***的存储服务器中的存储位置;
根据所述第一存储位置,上传所述待上传文件块;
在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将所述待上传文件块更新为所选择的文件块,并返回执行所述向云存储***的管理服务器发送上传所述待上传文件块的第一请求的步骤,直至分割好的文件块全部上传完成;
所述根据所述第一存储位置,上传所述待上传文件块,包括:
将所述待上传文件块中的一个文件块确定为目标文件块;
向所述存储服务器发送第二请求,所述第二请求包括:所述待上传文件块中各文件块的第一哈希值;
根据所述第一存储位置,上传所述目标文件块;
在所述待上传文件块未全部上传的情况下,从未上传的文件块中选择文件块,并将所述目标文件块更新为所选择的文件块,返回执行所述向所述存储服务器发送第二请求的步骤,直至所述待上传文件块全部上传完成。
2.根据权利要求1所述的方法,其特征在于,在所述接收针对目标文件的上传请求之后,在所述将所述目标文件按照预设分割规则分割成文件块之前,还包括:
向所述管理服务器发送获取目标文件的标识信息的获取请求;
接收所述管理服务器反馈的第二信息,其中所述第二信息中包括所述目标文件的标识信息;
所述第一请求还包括:所述目标文件的标识信息;
所述第一存储位置是所述管理服务器根据所述目标文件的标识信息确定的。
3.根据权利要求2所述的方法,其特征在于,所述第二请求包括:所述待上传文件块中各文件块的第一哈希值,其中,所述第一哈希值为:通过计算所述待上传文件块中每一文件块存储的数据的哈希值得到的;
在所述根据所述第一存储位置,上传所述目标文件块之后,还包括:
在接收到所述存储服务器反馈的上传完成的信息情况下,向所述管理服务器发送查询请求,其中,所述查询请求用于查询所述目标文件块是否上传成功;
接收所述管理服务器反馈的查询结果;
在所述查询结果表明上传失败时,判断所述目标文件块的上传次数是否超过第一预设次数;其中,所述查询结果是所述存储服务器根据所述第一哈希值,检查所述待上传文件块的完整状态后确定的;
如果是,显示上传失败的提示;
如果否,返回执行根据所述第一存储位置,上传所述目标文件块的步骤。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述第一存储位置,上传所述目标文件块之前,还包括:
利用加密算法及自身记录的第一密钥,对所述目标文件块进行加密;
所述根据所述第一存储位置,上传所述待上传文件块,包括:
根据所述第一存储位置,上传加密后的所述目标文件块。
5.根据权利要求2所述的方法,其特征在于,在分割好的文件块全部上传完成之后,所述方法还包括:
向所述管理服务器发送文件块上传完成确认请求;
接收所述管理服务器反馈的确认结果;
在所述确认结果表明存在遗漏的文件块后,将所述遗漏的文件块上传至所述第一存储位置;并返回执行所述向所述管理服务器发送文件块上传完成确认请求的步骤。
6.根据权利要求2所述的方法,其特征在于,所述第二信息还包括:所述目标文件的当前版本信息。
7.根据权利要求1所述的方法,其特征在于,所述接收针对目标文件的上传请求,包括:
监测是否接收到用于展示第一文件操作面板的第一展示指令;
若为是,展示所述第一文件操作面板;
接收通过所述第一文件操作面板发送的针对目标文件的上传请求。
8.根据权利要求7所述的方法,在接收过所述第一文件操作面板发送的针对目标文件的上传请求之后,还包括:
判断是否成功登录云存储***的管理服务器;
若成功,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
若失败,展示第一登录面板,并通过所述第一登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
获得根据所述第一文件管理面板的展示信息确定的目标存储路径;
所述第一请求中还包括:所述目标存储路径;
所述接收所述管理服务器反馈的第一存储位置,包括:
接收所述管理服务器根据所述目标存储路径确定的第一存储位置。
9.根据权利要求8所述的方法,其特征在于,在根据所述第一存储位置,上传所述待上传文件块之后,还包括:
通过所述第一文件管理面板展示所述目标文件的上传进度。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
通过所述第一文件管理面板向所述管理服务器发送第一对象新建请求;
接收所述管理服务器反馈的针对所述第一对象新建请求的结果信息;
根据所述结果信息在所述的第一文件管理面板中显示新建的第一对象。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收通过所述第一文件管理面板发送的第一退出登录请求;
根据所述第一退出登录请求,断开与所述管理服务器之间的连接。
12.一种文件下载方法,其特征在于,应用于客户端中具有下载功能的插件,所述客户端还具有对文件的编辑功能,所述方法包括:
向云存储***的管理服务器发送针对第一文件的下载请求,其中,所述第一文件包括至少一个文件块;
接收所述管理服务器反馈的第三信息,其中,所述第三信息中包括所述第一文件的文件块数量;
基于所述文件块数量,确定待下载文件块;
向所述管理服务器发送下载所述待下载文件块的第三请求,其中所述第三请求包含所述待下载文件块的数量,所述第三请求还包括所述待下载文件块的块号;
接收所述管理服务器反馈的所述待下载文件块的第二存储位置;
从所述第二存储位置下载所述待下载文件块,在所述第一文件未下载完毕的情况下,返回执行所述基于所述第一文件的块数,确定待下载文件的步骤,直至所述第一文件下载完成;
所述从所述第二存储位置下载所述待下载文件块,包括:
将所述待下载文件块中的一个文件块确定为第一文件块;
向存储服务器发送的第四请求,所述第四请求中包含所述第一文件块的哈希值;
从所述第二存储位置下载所述待下载所述第一文件块;
在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块,返回执行向所述存储服务器发送的第四请求的步骤,直至所述待下载文件块全部下载完成。
13.根据权利要求12所述的方法,其特征在于,在所述向所述管理服务器发送下载所述待下载文件块的第三请求之后,还包括:
接收所述管理服务器反馈的第二哈希值,其中,所述第二哈希值为:通过计算所述待下载文件块中每一文件块存储的数据的哈希值得到的;
在所述从所述第二存储位置下载所述待下载所述第一文件块之后,还包括:
根据所述管理服务器反馈的第二哈希值,确定所述第一文件块是否完整,其中,所述第二哈希值是所述管理服务器在接收到所述第三请求时反馈的;
如果是,返回执行在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块的步骤;
如果否,判断所述第一文件块的下载次数是否超过第二预设次数;
如果超过,显示下载失败的提示;
如果不超过,返回执行从所述第二存储位置下载所述待下载所述第一文件块的步骤。
14.根据权利要求12所述的方法,其特征在于,在所述从所述第二存储位置下载所述待下载所述第一文件块之后,还包括:
基于解密算法及自身记录的第二密钥,对所述第一文件块进行解密。
15.根据权利要求12所述的方法,其特征在于,所述第三信息还包括:所述第一文件的当前版本信息。
16.根据权利要求12所述的方法,其特征在于,在所述向云存储***的管理服务器发送针对第一文件的下载请求之前,所述方法还包括:
监测是否接收到用于展示第二文件操作面板的第二展示指令;
若为是,展示所述第二文件操作面板;
判断是否成功登录云存储***的管理服务器;
若成功,在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板;
若失败,展示第二登录面板,并通过所述第二登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第一预设位置展示第二文件管理面板;
获得根据所述第二文件管理面板的展示信息确定的目标下载路径;
所述向云存储***的管理服务器发送针对第一文件的下载请求,包括:
通过所述第二文件管理面板向云存储***的管理服务器发送针对第一文件的下载请求;
所述下载请求中还包括:所述目标下载路径;
所述接收所述管理服务器反馈的所述待下载文件块的第二存储位置,包括:
接收所述管理服务器根据所述目标下载路径确定的第二存储位置。
17.一种文件上传装置,其特征在于,应用于客户端中具有上传功能的插件,所述客户端还具有对文件的编辑功能,所述装置包括:
第一接收模块,用于接收针对目标文件的上传请求;
分割模块,用于将所述目标文件按照预设分割规则分割成文件块;
第一确定模块,用于在分割好的文件块中确定待上传文件块;
第一发送模块,用于向云存储***的管理服务器发送上传所述待上传文件块的第一请求,其中,所述第一请求中包括所述待上传文件块的数量,所述第一请求还包括每一待上传文件块的块号;
第二接收模块,用于接收所述管理服务器反馈的第一存储位置,其中,所述第一存储位置为所述待上传文件块在云存储***的存储服务器中的存储位置;
第一上传模块,用于将所述待上传文件块上传至所述第一存储位置;
更新模块,用于在分割好的文件块未全部上传的情况下,从未上传的文件块中选择文件块,将所述待上传文件块更新为所选择的文件块,并返回执行所述第一发送模块,直至分割好的文件块全部上传完成;
所述第一上传模块,包括:
第一确定子模块,用于将所述待上传文件块中的一个文件块确定为目标文件块;
第一发送子模块,用于向所述存储服务器发送第二请求,所述第二请求包括:所述待上传文件块中各文件块的第一哈希值;
上传子模块,用于根据所述第一存储位置,上传所述目标文件块;
第一更新子模块,用于在所述待上传文件块未全部上传的情况下,从未上传的文件块中选择文件块,并将所述目标文件块更新为所选择的文件块,返回执行所述第一发送子模块,直至所述待上传文件块全部上传完成。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第二发送模块,用于向所述管理服务器发送获取目标文件的标识信息的获取请求;
第三接收模块,用于接收所述管理服务器反馈的第二信息,其中所述第二信息中包括所述目标文件的标识信息;
所述第一请求还包括:所述目标文件的标识信息;
所述第一存储位置是所述管理服务器根据所述目标文件的标识信息确定的。
19.根据权利要求18所述的装置,其特征在于,所述第二请求包括所述待上传文件块中各文件块的第一哈希值,其中,所述第一哈希值为:通过计算所述待上传文件块中每一文件块存储的数据的哈希值得到的;
所述第一上传模块,还包括:
第二发送子模块,用于在接收到所述存储服务器反馈的上传完成的信息情况下,向所述管理服务器发送查询请求,其中,所述查询请求用于查询所述目标文件块是否上传成功;
第一接收子模块,用于接收所述管理服务器反馈的查询结果;
第一判断子模块,用于在所述查询结果表明上传失败时,判断所述目标文件块的上传次数是否超过第一预设次数;其中,所述查询结果是所述存储服务器根据所述第一哈希值,检查所述待上传文件块的完整状态后确定的;
第一显示子模块,用于在所述判断子模块的判断结果为是的情况下,显示上传失败的提示;
所述上传子模块,还用于在所述判断子模块的判断结果为否的情况下,根据所述第一存储位置,上传所述目标文件块。
20.根据权利要求19所述的装置,其特征在于,所述上传模块,还包括:
加密子模块,用于利用加密算法及自身记录的第一密钥,对所述目标文件块进行加密;
所述上传子模块,具体用于:
根据所述第一存储位置,上传加密后的所述目标文件块。
21.根据权利要求18所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于在分割好的文件块全部上传完成之后向所述管理服务器发送文件块上传完成确认请求;
第四接收模块,用于接收所述管理服务器反馈的确认结果;
第二上传模块,用于在所述确认结果表明存在遗漏的文件块后,将所述遗漏的文件块上传至所述第一存储位置;并返回执行所述第三发送模块。
22.根据权利要求18所述的装置,其特征在于,所述第二信息包括:所述目标文件的当前版本信息。
23.根据权利要求17所述的装置,其特征在于,所述第一接收模块,包括:
第一监测子模块,用于监测是否接收到用于展示第一文件操作面板的第一展示指令;
第一展示子模块,用于在第一监测子模块的监测结果为是的情况下,展示所述第一文件操作面板;
第一接收子模块,用于接收通过所述第一文件操作面板发送的针对目标文件的上传请求。
24.根据权利要求23所述的装置,所述第一接收模块,还包括:
第一判断子模块,用于判断是否成功登录云存储***的管理服务器;
第二展示子模块,用于在所述第一判断子模块的判断结果为成功的情况下,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
第三展示子模块,用于在所述第一判断子模块的判断结果为失败的情况下,展示第一登录面板,并通过所述第一登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第一文件操作面板的第一预设位置展示第一文件管理面板;
第一获得子模块,用于获得根据所述第一文件管理面板的展示信息确定的目标存储路径;
所述第一请求中还包括:所述目标存储路径;
所述第二接收模块,具体用于:
接收所述管理服务器根据所述目标存储路径确定的第一存储位置。
25.根据权利要求24所述的装置,其特征在于,所述装置,还包括:
第一展示模块,用于通过所述第一文件管理面板展示所述目标文件的上传进度。
26.根据权利要求24所述的装置,其特征在于,所述装置还包括:
第六发送模块,用于向所述管理服务器发送第一对象新建请求;
第八接收模块,用于接收所述管理服务器反馈的针对所述第一对象新建请求的结果信息;
第一显示模块,用于根据所述结果信息在所述的第一文件管理面板中显示新建的第一对象。
27.根据权利要求24所述的装置,其特征在于,所述装置还包括:
第九接收模块,用于接收通过所述第一文件管理面板发送的第一退出登录请求;
第一断开模块,用于根据所述第一退出登录请求,断开与所述管理服务器之间的连接。
28.一种文件下载装置,其特征在于,应用于客户端中具有下载功能的插件,所述客户端还具有对文件的编辑功能,所述装置包括:
第四发送模块,用于向云存储***的管理服务器发送针对第一文件的下载请求,其中,所述第一文件包括至少一个文件块;
第五接收模块,用于接收所述管理服务器反馈的第三信息,其中,所述第三信息中包括所述第一文件的文件块数量;
第二确定模块,用于基于所述文件块数量,确定待下载文件块;
第五发送模块,用于向所述管理服务器发送下载所述待下载文件块的第三请求,其中所述第三请求包含所述待下载文件块的数量,所述第三请求还包括所述待下载文件块的块号;
第六接收模块,用于接收所述管理服务器反馈的所述待下载文件块的第二存储位置;
下载模块,用于从所述第二存储位置下载所述待下载文件块,在所述第一文件未下载完毕的情况下,返回执行所述第二确定模块,直至所述第一文件下载完成;
所述下载模块,包括:
第二确定子模块,用于将所述待下载文件块中的一个文件块确定为第一文件块;
第三发送子模块,用于向存储服务器发送的第四请求,所述第四请求中包含所述第一文件块的哈希值;
下载子模块,用于从所述第二存储位置下载所述待下载所述第一文件块;
第二更新子模块,用于在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块,返回执行所述第三发送子模块。
29.根据权利要求28所述的装置,其特征在于,所述装置还包括:
第七接收模块,用于接收所述管理服务器反馈的第二哈希值,其中,所述第二哈希值为:通过计算所述待下载文件块中每一文件块存储的数据的哈希值得到的;
所述下载模块,还包括:
第三确定子模块,用于根据所述管理服务器反馈的第二哈希值,确定所述第一文件块是否完整,其中,所述第二哈希值是所述管理服务器在接收到所述第三请求时反馈的;
所述第二更新子模块,还用于在所述第三确定子模块的确定结果为是的情况下,在所述待下载文件块未全部上下载的情况下,从未下载的文件块中选择文件块,并将所述第一文件块更新为所选择的文件块,返回执行所述第三发送子模块;
第二判断子模块,用于在所述第二更新子模块的确定结果为否的情况下,判断所述第一文件块的下载次数是否超过第二预设次数;
第二显示子模块,用于在所述第二判断子模块的判断结果为超过的情况下,显示下载失败的提示;
所述下载子模块,还用于在所述第二判断子模块的判断结果不为超过的情况下,从所述第二存储位置下载所述待下载所述第一文件块。
30.根据权利要求28所述的装置,其特征在于,所述下载模块,还包括:
解密子模块,用于基于解密算法及自身记录的第二密钥,对所述第一文件块进行解密。
31.根据权利要求28所述的装置,其特征在于,所述第三信息包括:所述第一文件的当前版本信息。
32.根据权利要求28所述的装置,其特征在于,所述装置还包括:
第一监测模块,用于监测是否接收到用于展示第二文件操作面板的第二展示指令;
第二展示模块,用于在所述第一监测模块的监测结果为是的情况下,展示所述第二文件操作面板;
第一判断模块,用于判断是否成功登录云存储***的管理服务器;
第三展示模块,用于在所述第一判断模块的判断结果为成功的情况下,在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板;
第四展示模块,用于在所述第一判断模块的判断结果为失败的情况下,展示第二登录面板,并通过所述第二登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第二预设位置展示第二文件管理面板;
第一获得模块,用于获得根据所述第二文件管理面板的展示信息确定的目标下载路径;
所述第六接收模块,具体用于:
通过所述第二文件管理面板向云存储***的管理服务器发送针对第一文件的下载请求;
所述下载请求中还包括:所述目标下载路径;
所述第六接收模块,具体用于:
接收所述管理服务器根据所述目标下载路径确定的第二存储位置。
33.一种文件传输方法,其特征在于,应用于客户端中具有文件传输功能的插件,所述客户端还具有对文件的编辑功能,所述方法包括:
监测是否接收到用于第三文件操作面板的第三展示指令;
若为是,展示所述第三文件操作面板;
接收通过所述第三文件操作面板发送的针对第二文件的文件传输指令;
判断是否成功登录云存储***的管理服务器;
若成功,在距离所述第三文件操作面板的第三预设位置展示第三文件管理面板;
若失败,展示第三登录面板,并通过所述第三登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第三预设位置展示第二文件管理面板;
获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行所述第二文件的传输;
所述第二文件的传输,包括:按照如权利要求1-11任一项所述的上传方法上传第二文件,或者按照如权利要求12-16任一项所述的下载方法下载所述第二文件。
34.根据权利要求33所述的方法,其特征在于,在所述获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行文件传输之后,还包括:
通过所述第三文件管理面板展示所述第二文件的传输进度。
35.根据权利要求33所述的方法,其特征在于,所述方法还包括:
通过所述第三文件管理面板向所述管理服务器发送第二对象新建请求;
接收所述管理服务器反馈的针对所述第二对象新建请求的结果信息;
根据所述结果信息在所述第三文件管理面板中显示新建的第二对象。
36.根据权利要求33所述的方法,其特征在于,所述方法还包括:
接收通过所述第三文件管理面板发送的第二退出登录请求;
根据所述第二退出登录请求,断开与所述管理服务器之间的连接。
37.一种文件传输装置,其特征在于,应用于客户端中具有文件传输功能的插件,所述客户端还具有对文件的编辑功能,所述装置包括:
第二监测模块,用于监测是否接收到用于第三文件操作面板的第三展示指令;
第五展示模块,用于在所述第二监测模块的监测结果为是的情况下,展示所述第三文件操作面板;
第十接收模块,用于接收通过所述第三文件操作面板发送的针对第二文件的文件传输指令;
第二判断模块,用于判断是否成功登录云存储***的管理服务器;
第六展示模块,用于在所述第二判断模块的判断结果为成功的情况下,在距离所述第三文件操作面板的第三预设位置展示第三文件管理面板;
第七展示模块,用于在所述第二判断模块的判断结果为失败的情况下,展示第三登录面板,并通过所述第三登录面板登录所述管理服务器,在成功登录所述管理服务器后,在距离所述第二文件操作面板的第三预设位置展示第二文件管理面板;
传输模块,用于获得根据所述第一文件管理面板的展示信息确定的目标路径,根据所述目标路径和所述文件传输指令进行所述第二文件的传输;
所述传输模块,具体用于按照如权利要求1-11任一项所述的上传方法上传第二文件,或者按照如权利要求12-16任一项所述的下载方法下载所述第二文件。
38.根据权利要求37所述的装置,其特征在于,所述装置,还包括:
第八展示模块,用于通过所述第三文件管理面板展示所述第二文件的传输进度。
39.根据权利要求37所述的装置,其特征在于,所述装置还包括:
第七发送模块,用于通过所述第三文件管理面板向所述管理服务器发送第二对象新建请求;
第十一接收模块,用于接收所述管理服务器反馈的针对所述第二对象新建请求的结果信息;
第二显示模块,用于根据所述结果信息在所述第三文件管理面板中显示新建的第二对象。
40.根据权利要求 37所述的装置,其特征在于,所述装置还包括:
第十二接收模块,用于接收通过所述第三文件管理面板发送的第二退出登录请求;
第二断开模块,用于根据所述第二退出登录请求,断开与所述管理服务器之间的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611151740.0A CN108234539B (zh) | 2016-12-14 | 2016-12-14 | 一种文件上传、下载、传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611151740.0A CN108234539B (zh) | 2016-12-14 | 2016-12-14 | 一种文件上传、下载、传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108234539A CN108234539A (zh) | 2018-06-29 |
CN108234539B true CN108234539B (zh) | 2022-06-03 |
Family
ID=62638309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611151740.0A Active CN108234539B (zh) | 2016-12-14 | 2016-12-14 | 一种文件上传、下载、传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108234539B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241002B (zh) * | 2018-09-10 | 2022-02-01 | 创新先进技术有限公司 | 文件上传方法、装置及设备 |
CN109922142B (zh) * | 2019-02-21 | 2022-04-19 | 创新先进技术有限公司 | 一种文件下载方法、装置及*** |
CN111610970A (zh) * | 2019-02-22 | 2020-09-01 | 广东真才企链信息科技有限公司 | 一种大数据量表单封装异步提交的方法 |
CN110247986A (zh) * | 2019-06-28 | 2019-09-17 | 北京奇艺世纪科技有限公司 | 一种文件传输方法、装置及电子设备 |
CN110336871A (zh) * | 2019-07-01 | 2019-10-15 | 江苏满运软件科技有限公司 | 一种文件处理方法、装置、存储介质及电子设备 |
CN110610103A (zh) * | 2019-09-24 | 2019-12-24 | 成都卫士通信息安全技术有限公司 | 一种密标文件验标方法及装置 |
CN110784524A (zh) * | 2019-10-14 | 2020-02-11 | 广州微算互联信息技术有限公司 | 一种云手机文件上传保活方法、装置及*** |
CN112883427A (zh) * | 2019-11-29 | 2021-06-01 | 航天信息股份有限公司 | 文件完整性的检测方法及装置 |
CN111159291A (zh) * | 2019-12-19 | 2020-05-15 | 视联动力信息技术股份有限公司 | 一种进度条的显示方法、装置、终端设备和存储介质 |
CN111193785B (zh) * | 2019-12-20 | 2023-05-02 | 北京淇瑀信息科技有限公司 | 一种文件切割传输方法、装置和电子设备 |
CN111147332B (zh) * | 2019-12-29 | 2022-04-29 | 北京浪潮数据技术有限公司 | 存储***云备份的上传进度确定方法、***及相关装置 |
CN112468511B (zh) * | 2020-12-11 | 2023-02-03 | 建信金融科技有限责任公司 | 文件传输方法和装置 |
CN112822260B (zh) * | 2020-12-31 | 2023-06-09 | 北京天融信网络安全技术有限公司 | 文件传输方法及装置、电子设备、存储介质 |
CN113271343A (zh) * | 2021-04-28 | 2021-08-17 | 华录光存储研究院(大连)有限公司 | 一种数据下载、上传的方法及电子设备 |
CN114338646B (zh) * | 2021-11-29 | 2024-06-21 | 王建冬 | 文件交互传输方法、装置、设备及存储介质 |
CN114401261A (zh) * | 2021-12-29 | 2022-04-26 | 中国电信股份有限公司 | 文件下载方法及装置 |
CN114338653A (zh) * | 2021-12-29 | 2022-04-12 | 中国电信股份有限公司 | 文件断点续传方法及装置 |
CN114500514B (zh) * | 2022-02-14 | 2023-12-12 | 京东科技信息技术有限公司 | 用于云存储的文件传输方法及装置、电子设备和存储介质 |
CN114866536A (zh) * | 2022-05-31 | 2022-08-05 | 北京奕斯伟计算技术有限公司 | 文件上传方法及web前端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973421A (zh) * | 2013-02-06 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 文件传送方法及装置 |
CN104468843A (zh) * | 2014-12-31 | 2015-03-25 | 浪潮软件股份有限公司 | 一种文件上传方法及装置 |
CN105472035A (zh) * | 2016-01-04 | 2016-04-06 | 百度在线网络技术(北京)有限公司 | 一种文件传输方法及装置 |
CN105491132A (zh) * | 2015-12-11 | 2016-04-13 | 北京元心科技有限公司 | 文件服务器、终端及其文件分包传输方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
KR20130046540A (ko) * | 2011-10-28 | 2013-05-08 | 삼성에스디에스 주식회사 | 데이터 전송 장치 및 방법 |
CN102739689B (zh) * | 2012-07-16 | 2015-05-13 | 四川师范大学 | 一种用于云存储***的文件数据传输装置和方法 |
CN103685332B (zh) * | 2012-08-31 | 2018-04-24 | 腾讯科技(深圳)有限公司 | 文件上传方法、客户端、服务器及*** |
CN103731451B (zh) * | 2012-10-12 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 一种文件上传的方法及*** |
CN105025053A (zh) * | 2014-04-24 | 2015-11-04 | 苏宁云商集团股份有限公司 | 基于云存储技术的分布式文件的上传方法及其*** |
CN105227610A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传、保存方法及装置 |
CN104580395B (zh) * | 2014-12-22 | 2018-02-23 | 西安电子科技大学 | 一种基于现存云存储平台的多云协同存储中间件*** |
CN104539739B (zh) * | 2015-01-26 | 2019-03-29 | 浙江大学 | 一种文件上传的***、方法及装置 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
CN105847139A (zh) * | 2016-03-25 | 2016-08-10 | 乐视控股(北京)有限公司 | 数据传输方法、装置及*** |
CN105872036A (zh) * | 2016-03-28 | 2016-08-17 | 联想(北京)有限公司 | 一种数据上传、下载方法、电子设备及服务器 |
CN105893511A (zh) * | 2016-03-30 | 2016-08-24 | 电子科技大学 | 一种使用代理云进行数据拷贝留痕的方法 |
CN105872102B (zh) * | 2016-06-06 | 2018-12-18 | 武汉理工大学 | 一种文件上传下载方法 |
-
2016
- 2016-12-14 CN CN201611151740.0A patent/CN108234539B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973421A (zh) * | 2013-02-06 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 文件传送方法及装置 |
CN104468843A (zh) * | 2014-12-31 | 2015-03-25 | 浪潮软件股份有限公司 | 一种文件上传方法及装置 |
CN105491132A (zh) * | 2015-12-11 | 2016-04-13 | 北京元心科技有限公司 | 文件服务器、终端及其文件分包传输方法 |
CN105472035A (zh) * | 2016-01-04 | 2016-04-06 | 百度在线网络技术(北京)有限公司 | 一种文件传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108234539A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108234539B (zh) | 一种文件上传、下载、传输方法及装置 | |
WO2022252632A1 (zh) | 一种数据加密处理方法、装置、计算机设备及存储介质 | |
US20120226823A1 (en) | Document distribution system and method | |
US9430211B2 (en) | System and method for sharing information in a private ecosystem | |
US9311326B2 (en) | Virtual file system for automated data replication and review | |
CN106878265B (zh) | 一种数据处理方法及装置 | |
US10630722B2 (en) | System and method for sharing information in a private ecosystem | |
US20170371625A1 (en) | Content delivery method | |
KR101623742B1 (ko) | 파일 연관 메시지 공유 방법 및 메시지 공유 시스템 | |
CN112948340A (zh) | 数据同步方法、装置、电子设备及可读存储介质 | |
WO2021098277A1 (zh) | 区块链文件存取方法、装置、计算机设备及存储介质 | |
US7533125B2 (en) | Managing a data file with an access code | |
US9332405B2 (en) | Short message backup method, mobile terminal, and server | |
US20110154015A1 (en) | Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File | |
KR20090003405A (ko) | 파일 업로드 시스템 및 방법 | |
CN114615031A (zh) | 文件存储方法、装置、电子设备及存储介质 | |
US20080271112A1 (en) | Automatic file transfer | |
CN111222075A (zh) | 基于多Webview的数据传输方法、服务器及存储介质 | |
CN111327680B (zh) | 认证数据同步方法、装置、***、计算机设备和存储介质 | |
US7650392B1 (en) | Dynamic content processing in a reverse proxy service | |
US20120030556A1 (en) | Method for enabling interactive content within messaging application | |
US20150046565A1 (en) | System and method for archiving messages | |
US6714950B1 (en) | Methods for reproducing and recreating original data | |
CN110650014B (zh) | 一种基于hessian协议的签名认证方法、***、设备及存储介质 | |
CN112347040A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |