CN103841144A - 云存储系统、方法、用户端及云存储服务器 - Google Patents
云存储系统、方法、用户端及云存储服务器 Download PDFInfo
- Publication number
- CN103841144A CN103841144A CN201210483080.1A CN201210483080A CN103841144A CN 103841144 A CN103841144 A CN 103841144A CN 201210483080 A CN201210483080 A CN 201210483080A CN 103841144 A CN103841144 A CN 103841144A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- code
- module
- characteristics code
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种云存储系统,包括用户端和云存储服务器;所述用户端产生业务请求,提取数据特征码和数据类型,对数据特征码、数据类型和业务请求进行封装后发送至所述云存储服务器;所述云存储服务器将全局摘要字典分成不同数据类型的特征码字典,接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理。本发明还公开了一种云存储方法、用户端及云存储服务器以及另一种云存储系统、方法、用户端及云存储服务器;利用本发明,减少了云存储服务器的计算负担,提高了检索效率。
Description
技术领域
本发明涉及云存储技术领域,尤其涉及云存储系统、方法、用户端及云存储服务器。
背景技术
云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。现有在线云存储系统组成结构如图1所示,由用户端和云存储服务器两部分组成;其中,用户端用于发送上传数据、删除数据、共享数据等业务请求;通讯模块用于传输和解析数据和业务请求;云存储服务器用于接收并处理所述业务请求,云存储服务器中的用户管理模块用于管理用户信息以及用户数据等,存储引擎负责用户数据的存储及维护,存储介质用于记录用户数据存储的物理位置。
现有技术中,当用户端预上传文件数据到云存储服务器时,用户端先计算待上传文件数据的摘要值,通讯模块传输该摘要值到云存储服务器,云存储服务器将通过检索全局摘要字典来确定云存储服务器中是否有该摘要值存在。这样,用户端每上传一个摘要值给云存储服务器,云存储服务器就需要展开一次对全局摘要字典的检索,而全局摘要字典中含有大量的数据,每检索一次,都将耗费云存储服务器大量的计算资源。
并且,当用户端的用户B、用户C想要共享用户A的数据A时,现有技术中采用的方法是用户B、用户C将数据A分别存在云存储服务器中;这样,云存储服务器中便存储了大量的重复数据,占用了存储资源。
实际应用中,当用户端需要上传数据A到云存储服务器时,用户端将计算待上传数据A的摘要值,通过通讯模块传送至云存储服务器;根据数据A摘要值,云存储服务器在特征码字典中进行数据A摘要值检索;当云存储服务器没有检索出数据A摘要值时,用户端将上传数据A到云存储服务器。目前,存在这样的情况,数据A中的部分数据A1在数据A上传到云存储服务器中之前,在云存储服务器中是存在的,数据A中的另一部分数据A2在数据A上传到云存储服务器中之前,在云存储服务器中是不存在的;这样,在数据A上传到云存储服务器之后,云存储服务器中就重复存储了数据A1,造成存储资源的浪费。尤其是在用户端与云存储服务器进行数据更新或数据同步过程中,数据的重复上传加大了传输带宽,容易造成用户端与云存储服务器之间的通讯速度减慢。
发明内容
有鉴于此,本发明的主要目的在于提供一种云存储系统、方法、用户端及云存储服务器,能减少了云存储服务器的计算负担,减少存储资源占用。
本发明的另一目的在于提供一种云存储系统、方法、用户端及云存储服务器,能避免单一检索整个数据摘要值所造成的数据重复存储的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种云存储系统,该系统包括用户端和云存储服务器;其中,
所述用户端,用于产生业务请求,提取数据特征码和数据类型,并对数据特征码、数据类型和业务请求封装后一起发送;
所述云存储服务器,用于将全局摘要字典分成不同数据类型的特征码字典,接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理。
上述方案中,所述用户端进一步包括第一处理模块、提取模块和第一通讯模块;其中,
所述第一处理模块,用于产生业务请求;
所述提取模块,用于提取业务请求数据的数据特征码和数据类型;
所述第一通讯模块,用于将提取的数据特征码、数据类型与业务请求进行封装,并发送至所述云存储服务器。
上述方案中,所述云存储服务器进一步包括第二通讯模块、第二处理模块、特征码维护模块、特征码字典、特征码检索模块、存储模块和用户管理模块;其中,
所述第二通讯模块,用于接收业务请求、数据特征码和数据类型,并解析出数据特征码、数据类型和业务请求;
所述第二处理模块,用于接收解析出的业务请求;
所述特征码维护模块,用于定期检测所述特征码字典,删除失效特征码、更新所述特征码字典、维护数据与数据特征码之间的链接;
所述特征码字典,用于收集并保存按照数据类型分类的数据特征码;
所述特征码检索模块,用于依据数据类型,以数据特征码作为关键字,检索相应数据类型的特征码字典;
所述存储模块,用于存储用户的数据;
所述用户管理模块,用于维护数据与使用该数据的用户之间的链接。
本发明还提供了一种云存储方法,将全局摘要字典分成不同数据类型的特征码字典;该方法还包括:
产生业务请求,提取数据特征码和数据类型,并对数据特征码、数据类型与所述业务请求进行封装后发送;
接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理。
上述方案中,所述业务请求为上传数据请求;上传数据业务包括:
用户端的第一处理模块产生上传数据请求;提取模块提取待上传数据的数据特征码和数据类型;依据HTTP第一通讯模块对所述数据特征码、数据类型和上传数据请求进行封装,并发送到第二通讯模块;
第二通讯模块接收并解析已封装的数据特征码、数据类型和上传数据请求;第二处理模块接收解析出的数据特征码、数据类型和上传数据请求之后,依据解析出的数据类型,特征码检索模块以数据特征码作为关键字,在相应数据类型的特征码字典中进行数据特征码检索;
当检索出数据特征码时,特征码维护模块建立数据与数据特征码之间的链接,用户管理模块建立数据与使用该数据的用户之间的链接;
当检索不出数据特征码时,所述云存储服务器返回“请求上传数据”给所述用户端;所述用户端上传数据,存储模块存储上传数据,特征码维护模块将数据特征码添加到相应数据类型的特征码字典,特征码维护模块建立数据与数据特征码之间的链接,用户管理模块建立数据与使用该数据的用户之间的链接。
上述方案中,所述业务请求为数据删除请求;删除数据业务包括:
用户端的第一处理模块产生数据删除请求;提取模块提取待删除数据的数据特征码和数据类型;依据HTTP第一通讯模块对所述数据特征码、数据类型和数据删除请求进行封装,并发送到第二通讯模块;
第二通讯模块接收并解析已封装的数据特征码、数据类型和数据删除请求;第二处理模块接收解析出的数据特征码、数据类型和数据删除请求之后,依据解析出的数据类型,特征码检索模块以数据特征码作为关键字,在相应数据类型的特征码字典中进行数据特征码检索;
特征码维护模块判断数据特征码与使用数据特征码的当前用户是否存在链接,当数据特征码与当前用户仍然存在链接时,用户管理模块断开数据特征码和相应用户之间的链接;
所述特征码维护模块判断数据特征码是否仍与使用数据特征码的其他用户存在链接;
当数据特征码与使用数据特征码的用户均不存在链接时,所述特征码字典记录当前时刻为所述数据特征码的第一标记时间戳。
上述方案中,所述特征码字典记录第一标记时间戳之后;
所述云存储服务器的后台定时启动清理业务,检测特征码字典,当数据特征码没有与任何用户存在链接时,判断当前检测时间与第一标记时间戳的时间差是否大于第一时间阈值,当时间差大于第一时间阈值时,特征码字典删除所述数据特征码,所述存储模块删除数据特征码对应的数据。
上述方案中,所述业务请求为数据共享保存请求;共享保存数据包括:
第一处理模块产生数据共享保存请求;提取模块提取待共享保存数据的数据特征码和数据类型;依据HTTP第一通讯模块对所述数据特征码、数据类型和数据共享保存请求进行封装,并发送到第二通讯模块;
第二通讯模块接收并解析已封装的数据特征码、数据类型和数据共享保存请求;第二处理模块接收解析出的数据特征码、数据类型和数据共享保存请求之后,依据解析出的数据类型,特征码检索模块以数据特征码为关键字,在相应数据类型的特征码字典中进行数据特征码检索;依据检索出的数据特征码,用户管理模块建立用户与待共享保存数据之间的链接。
本发明提供了一种用户端,该用户端包括:第一处理模块、提取模块和第一通讯模块;其中,
所述第一处理模块,用于产生业务请求;
所述提取模块,用于提取业务请求数据的数据特征码和数据类型;
所述第一通讯模块,用于封装并发送已提取的数据特征码、数据类型与业务请求。
本发明提供了一种云存储服务器,该云存储服务器包括:第二通讯模块、第二处理模块、特征码维护模块、特征码字典、特征码检索模块、存储模块和用户管理模块;其中,
所述第二通讯模块,用于接收业务请求、数据特征码和数据类型,并解析出数据特征码、数据类型和业务请求;
所述第二处理模块,用于接收解析出的业务请求;
所述特征码维护模块,用于定期检测所述特征码字典,删除失效特征码、更新所述特征码字典、维护数据与数据特征码之间的链接;
所述特征码字典,用于收集并保存按照数据类型分类的数据特征码;
所述特征码检索模块,用于依据数据类型,以数据特征码作为关键字,检索相应数据类型的特征码字典;
所述存储模块,用于存储用户的数据;
所述用户管理模块,用于维护数据与使用该数据的用户之间的链接。
本发明提供了另一种云存储系统,该系统包括用户端和云存储服务器;其中,
所述用户端,用于产生业务请求,切分数据形成数据块,提取每个数据块特征码,对数据块特征码和业务请求进行封装并发送;
所述云存储服务器,用于接收并解析业务请求和数据块特征码,检索数据块特征码,并对业务请求进行处理。
上述方案中,所述用户端包括:第三处理模块、数据切分模块、数据块特征码提取模块、更新检测模块和第三通讯模块;其中,
所述第三处理模块,用于产生业务请求;
所述数据切分模块,用于将数据切分成数据块,并保存数据块;
所述数据块特征码提取模块,用于提取并保存数据块特征码;
所述更新检测模块,用于检测用户端数据是否发生更新;
所述第三通讯模块,用于将数据块特征码和业务请求进行封装后发送至所述云存储服务器。
上述方案中,所述云存储服务器包括第四通讯模块、第四处理模块、数据块特征码维护模块、数据块特征码字典、数据块特征码检索模块、存储模块和用户管理模块;其中,
所述第四通讯模块,用于接收并解析出业务请求和数据块特征码;
所述第四处理模块:用于接收所述第四通讯模块解析出的业务请求;
所述数据块特征码维护模块,用于更新所述数据块特征码字典,定期检测所述数据块特征码字典,并删除数据块失效特征码、维护数据块与数据块特征码之间的链接;
所述数据块特征码字典,用于收集并保存数据块特征码;
所述数据块特征码检索模块,用于以数据块特征码作为关键字,检索所述数据块特征码字典;
所述存储模块,用于存储用户的数据块;
所述用户管理模块,用于维护数据块与使用该数据块的用户之间的链接。
本发明提供了另一种云存储方法,该方法包括:
产生业务请求,切分数据形成数据块,提取每个数据块特征码,对数据块特征码和业务请求进行封装并发送;
接收并解析业务请求和所有数据块的特征码,检索数据块特征码,并对业务请求进行处理。
上述方案中,所述业务请求为上传数据请求;上传数据业务包括:
第三处理模块产生上传数据请求;数据切分模块将待上传数据切分成数据块,数据块特征码提取模块提取待上传数据的数据块特征码;第三通讯模块对待上传数据的所有数据块特征码和上传数据请求进行封装,并发送到第四通讯模块;
所述第四通讯模块接收并解析已封装的数据块特征码和上传数据请求;第四处理模块接收解析出的上传数据请求之后,数据块特征码检索模块以待上传数据的每个数据块特征码作为关键字,在数据块特征码字典中进行数据块特征码检索;
当检索出数据块特征码时,数据块特征码维护模块建立数据块与数据块特征码之间的链接,用户管理模块建立数据块与使用该数据块的用户之间的链接;当检索不出数据块特征码时,所述云存储服务器返回“数据块不存在”给所述用户端,所述用户端上传数据,存储模块存储上传数据,数据块特征码维护模块将数据块特征码添加到数据块特征码字典,数据块特征码维护模块建立数据块与数据块特征码之间的链接,用户管理模块建立数据块与使用该数据块的用户之间的链接。
上述方案中,所述业务请求为数据删除请求;删除数据业务包括:
第三处理模块产生数据删除请求;数据切分模块将数据切分成数据块,数据块特征码提取模块提取待删除数据的数据块特征码;第三通讯模块对数据块特征码和数据删除请求进行封装,并发送到第四通讯模块;
第四通讯模块接收并解析已封装的数据块特征码和数据删除请求;第四处理模块接收解析出的数据块特征码和数据删除请求之后,数据块特征码检索模块以每个数据块特征码作为关键字,在数据块特征码字典中进行数据块特征码检索;
数据块特征码维护模块判断数据块特征码与使用数据块特征码的当前用户是否存在链接,当数据块特征码与当前用户仍存在链接时,用户管理模块断开数据块和使用该数据块的相应用户之间的链接;
之后,所述数据块特征码维护模块再判断数据块特征码是否仍与使用该数据块特征码的其他用户存在链接;
当数据块特征码与其他用户均不存在链接时,所述数据块特征码字典记录当前时刻为所述数据块特征码的第二标记时间戳。
上述方案中,所述数据块特征码字典记录第二标记时间戳之后;
所述云存储服务器的后台定时启动清理业务,检测数据块特征码字典,当数据块特征码没有与任何用户存在链接时,判断当前检测时间与第二标记时间戳的时间差是否大于第二时间阈值,当时间差大于第二时间阈值时,数据块特征码字典删除所述数据块特征码,所述存储模块删除数据块特征码对应的数据块。
上述方案中,所述业务请求为数据共享保存请求;共享保存数据包括:
第三处理模块产生数据共享保存请求;数据切分模块将数据切分成数据块,数据块特征码提取模块提取待共享保存数据的数据块特征码;第三通讯模块对所述数据块特征码和数据共享保存请求进行封装,并发送到第四通讯模块;
所述第四通讯模块接收并解析已封装的数据块特征码和数据共享保存请求;第四处理模块接收解析出的数据块特征码和数据共享保存请求之后,数据块特征码检索模块以每个数据块特征码作为关键字,在数据块特征码字典中进行数据块特征码检索;
依据检索出的数据块特征码,用户管理模块建立用户与数据块之间的链接。
上述方案中,所述业务请求为数据更新请求;数据更新包括:
第三处理模块产生数据更新请求;第三通讯模块对数据更新请求进行封装,发送到第四通讯模块;第四通讯模块接收并解释数据更新请求,所述第四处理模块接收到数据更新请求后,所述用户管理模块读取原数据块特征码集合和原数据块集合,第四通讯模块将原数据块集合、原数据块特征码集合进行封装,并发送到第三通讯模块;第三通讯模块接收并解析原数据块集合、原数据块特征码集合;
所述数据切分模块对用户端所有数据进行切分形成数据块,所述数据块特征提取模块提取所有数据块的数据块特征码;将切分得到的所有数据块与原数据块特征码集合进行比对,得到需要更新的数据块;将提取到的数据块特征码与原数据块特征码集合进行比对,得到需要更新的数据块特征码;
依据HTTP协议,所述第三通讯模块对需要更新的数据块、需要更新的数据块特征码和数据更新请求进行封装,并发送至所述第四通讯模块;
第四处理模块接收解析出的所有数据块特征码和数据更新请求之后,存储模块存储需要更新的数据块,数据块特征码维护模块添加需要更新的数据块特征码到数据块特征码字典;
数据块特征码维护模块建立需要更新的数据块与需要更新的数据块特征码之间的链接;用户管理模块建立需要更新的数据块与使用该数据块的用户之间的链接。
上述方案中,所述业务请求为数据同步请求;数据同步包括:
第三处理模块产生数据同步请求;数据切分模块对所有数据进行切分,形成数据块并保存;数据块特征码提取模块提取所有数据块的数据块特征码并保存;第三通讯模块对所有数据块特征码和数据同步请求进行封装,并发送到第四通讯模块;
所述第四通讯模块接收并解析已封装的所有数据块特征码和数据同步请求;第四处理模块接收解析出的所有数据块特征码和数据同步请求之后,数据块特征码检索模块将用户端发来的所有数据块特征码与保存在数据块特征码字典中的所有数据块特征码进行对比;
当数据块特征码检索模块对比出数据块特征码字典中部分数据块特征码没有出现在所述用户端发来的所有数据块特征码中时,存储模块将生成待同步数据块列表,数据块特征码维护模块将生成待同步数据块特征码列表并发送至所述用户端;依据待同步数据块列表,数据切分模块添加待同步数据块;依据待同步数据块特征码列表,数据块特征码提取模块添加待同步数据块特征码。
本发明提供了另一种用户端,该用户端包括:第三处理模块、数据切分模块、数据块特征码提取模块、更新检测模块和第三通讯模块;其中,
所述第三处理模块,用于产生业务请求;
所述数据切分模块,用于将数据切分成数据块,并保存数据块;
所述数据块特征码提取模块,用于提取并保存数据块特征码;
所述更新检测模块,用于检测用户端数据是否发生更新;
所述第三通讯模块,用于封装并发送数据块特征码和业务请求。
本发明提供了另一种云存储服务器,该云存储服务器包括:第四通讯模块、第四处理模块、数据块特征码维护模块、数据块特征码字典、数据块特征码检索模块、存储模块和用户管理模块;其中,
所述第四通讯模块,用于接收并解析出业务请求和数据块特征码;
所述第四处理模块:用于接收所述第四通讯模块解析出的业务请求;
所述数据块特征码维护模块,用于更新所述数据块特征码字典,定期检测所述数据块特征码字典,并删除数据块失效特征码、维护数据块与数据块特征码之间的链接;
所述数据块特征码字典,用于收集并保存所有数据块特征码;
所述数据块特征码检索模块,用于以数据块特征码作为关键字,检索所述数据块特征码字典;
所述存储模块,用于存储用户的数据块;
所述用户管理模块,用于维护数据块与使用该数据块的用户之间的链接。
本发明所提供的一种云存储系统、方法、用户端及云存储服务器,云存储服务器将全局摘要字典分成不同数据类型的特征码字典,对用户端计算出的数据文件的摘要值(即数据特征码)进行类型解析,依据解析出的数据类型,云存储服务器在相应数据类型的特征码字典中进行检索;在用户之间想要进行数据共享时,采用共享保存的方式,用户无需将预共享数据存储到云存储服务器中,只需通过预共享数据的用户与共享数据之间建立的链接便可访问数据。本发明无需在全局摘要字典中检索摘要值,只需在相应数据类型的特征码字典中检索摘要值;并且,本发明采用共享保存的方式进行用户之间的数据共享,如此,便减轻了云存储服务器的计算及存储负担,减少了对存储资源占用,提高了检索效率。
本发明所提供的另一种云存储系统、方法、用户端及云存储服务器,用户端对待上传/删除/共享保存/更新/同步等待处理的数据进行切分,切分成数据块,每个数据块有相应的数据块特征码,云存储服务器对每个数据块特征码进行检索,并对数据块进行所需的处理;如此,避免了云存储服务器存储相同数据造成资源占用的问题,减小了带宽资源的消耗,提高了传输和通讯速度。
附图说明
图1为现有技术中云存储系统组成结构示意图;
图2为本发明一种云存储系统组成结构示意图;
图3-1、3-2为本发明一种云存储系统实现上传数据业务的流程示意图;
图4-1、4-2为本发明一种云存储系统实现数据删除业务的流程示意图;
图5为本发明一种云存储系统实现失效特征码清除的流程示意图;
图6为本发明一种云存储系统实现数据共享保存业务的流程示意图;
图7为本发明另一种云存储系统组成结构示意图;
图8-1、8-2为本发明另一种云存储系统实现上传数据业务的流程示意图;
图9-1、9-2为本发明另一种云存储系统实现数据删除业务的流程示意图;
图9-3为本发明另一种云存储系统实现失效特征码清理的流程示意图;
图10为本发明另一种云存储系统实现数据共享保存业务的流程示意图;
图11为本发明另一种云存储系统实现用户端更新检测业务的流程示意图;
图12为本发明另一种云存储系统实现数据更新业务的流程示意图;
图13为本发明另一种云存储系统实现数据同步业务的流程示意图。
具体实施方式
本发明提供的一种云存储系统,如图2所示,包括用户端1和云存储服务器2;其中,
所述用户端1,用于产生业务请求,提取数据特征码和数据类型,并对数据特征码、数据类型和业务请求封装后一起发送;
所述云存储服务器2,用于将全局摘要字典分成不同数据类型的特征码字典,接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理;
其中,所述业务请求包括上传数据请求、数据删除请求、数据共享保存请求等等;所述数据特征码也称为摘要值。
进一步的,所述用户端1包括第一处理模块10、提取模块11和第一通讯模块12;
所述第一处理模块10,用于产生业务请求;
其中,所述业务请求包括:上传数据请求、数据删除请求、数据共享保存请求等等;
所述提取模块11,用于提取业务请求数据的数据特征码和数据类型;
其中,所述业务请求数据包括:待上传数据、待删除数据、待共享保存数据等等;
所述第一通讯模块12,用于将提取的数据特征码、数据类型与业务请求进行封装,并发送至所述云存储服务器2;
这里,可以根据超文本传输协议(HTTP,Hypertext Transport Protocol)发送封装的数据特征码和数据类型、以及业务请求。
所述云存储服务器2包括第二通讯模块20、第二处理模块21、特征码维护模块22、特征码字典23、特征码检索模块24、存储模块25和用户管理模块26;
所述第二通讯模块20,用于接收业务请求、数据特征码和数据类型,并解析出数据特征码、数据类型和业务请求;
这里,可依据HTTP接收业务请求、数据特征码和数据类型;
所述第二处理模块21,用于接收解析出的业务请求;
其中,所述业务请求包括:上传数据请求、数据删除请求、数据共享保存请求等等;
所述特征码维护模块22,用于定期检测所述特征码字典23,删除失效特征码、更新所述特征码字典23、维护数据与数据特征码之间的链接;
这里,所述数据与数据特征码之间存在一一映射关系,数据与用户之间存在有一对多映射关系,那么数据特征码与用户之间存在有一对多映射关系;因此,在处理数据删除业务请求时,所述特征码维护模块22,还用于判断数据特征码与使用该数据特征码的用户是否存在链接;
所述特征码字典23,用于收集并保存按照数据类型分类的数据特征码;
实际应用中,特征码字典23有多个,分别对应不同的数据类型;
所述特征码检索模块24,用于依据数据类型,以数据特征码作为关键字,检索相应数据类型的所述特征码字典23;
所述存储模块25,用于存储用户的数据;
所述用户管理模块26,用于维护数据与使用该数据的用户之间的链接;
因为数据与数据特征码之间存在有一一映射的关系,所以,所述用户管理模块26还可用于维护数据特征码与使用该数据特征码的用户之间的链接。
其中,所述第一处理模块10产生的业务请求还包括:数据共享和下载业务请求等等;对应的,所述第二处理模块21接收解析出的业务请求还包括:数据下载请求;本发明中,云存储系统对数据共享和下载等业务处理与现有技术中相同,在此不再赘述。
基于图1所示结构,所述云存储系统实现上传数据业务的过程为:
所述第一处理模块10产生上传数据请求,所述提取模块11依据现有算法提取待上传数据特征码和数据类型;依据HTTP所述第一通讯模块12对所述数据特征码、数据类型和上传数据请求进行封装,并发送到所述第二通讯模块20;所述第二通讯模块20解析已封装的数据特征码、数据类型和上传数据请求;所述第二处理模块21接收解析出的上传数据请求之后,依据解析出的数据类型,所述特征码检索模块24在相应数据类型的特征码字典23进行数据特征码检索;
当检索出数据特征码时,所述特征码维护模块22建立数据与数据特征码之间的链接,所述用户管理模块26建立数据与使用该数据的用户之间的链接;
当检索不出数据特征码时,所述云存储服务器2返回“请求上传数据”给所述用户端1,所述用户端1上传数据,所述存储模块25存储上传数据;所述特征码维护模块22将所述数据特征码添加到相应数据类型的特征码字典23;所述特征码维护模块22建立数据与数据特征码之间的链接,所述用户管理模块26建立数据与使用该数据的用户之间的链接;
其中,所述特征码维护模块22建立链接为:所述特征码维护模块22按照“数据”、“数据特征码”等属性格式将数据、数据特征码进行关联保存;
在对本发明技术方案进行说明时,只要涉及特征码维护模块22建立链接的,含义均与上述说明相同。
所述用户管理模块26建立链接为:所述用户管理模块26按照“数据”、“数据特征码”、“使用该数据(数据特征码)用户”等属性格式将数据、数据特征码、使用该数据(数据特征码)的用户进行关联保存。
所述云存储系统实现删除数据业务的过程为:
所述第一处理模块10产生数据删除请求,所述提取模块11依据现有算法提取待删除数据特征码和数据类型;依据HTTP所述第一通讯模块12对所述数据特征码、数据类型和数据删除请求进行封装,并发送到所述第二通讯模块20;所述第二通讯模块20解析已封装的数据特征码、数据类型和数据删除请求;所述第二处理模块21接收解析出的数据删除请求之后,依据解析出的数据类型,所述特征码检索模块24对所述特征码字典23进行数据特征码检索,所述特征码维护模块22判断所述数据特征码与数据是否存在链接的同时还判断所述数据特征码是否与使用该数据特征码的当前用户存在链接;
当所述数据特征码与当前用户仍然存在链接时,所述用户管理模块26断开数据特征码和使用所述数据特征码的当前用户之间的链接;
同时,所述特征码维护模块22还判断所述数据特征码是否与其它用户存在链接;
当数据特征码与当前用户、其它用户均不存在链接时,所述特征码字典记录当前时刻为所述数据特征码的第一标记时间戳;
所述云存储服务器2的后台定时启动清理业务,检测特征码字典23,当数据特征码没有与任何用户存在链接时,判断当前检测时间与第一标记时间戳的时间差是否大于第一时间阈值,当时间差大于第一时间阈值时,特征码字典23删除所述数据特征码,所述存储模块25删除所述数据特征码对应的数据。
这里,因为所述用户管理模块26之前已经按照“数据”、“数据特征码”“使用该数据(数据特征码)用户”等属性格式将数据、使用该数据(数据特征码)的用户进行了关联保存;所述用户管理模块26断开链接即为释放当前用户、数据特征码、数据之间的关联保存,即:用户管理模块26断开当前链接之后,所述用户对当前数据不可再进行读写等操作。
在对本发明技术方案进行说明时,只要涉及用户管理模块26断开链接的,含义均与上述说明相同。
所述云存储系统实现共享保存数据业务的过程为:
所述第一处理模块10产生数据共享保存请求,所述提取模块11依据现有算法提取待共享保存数据特征码和数据类型;依据HTTP所述第一通讯模块12对所述数据特征码、数据类型和数据共享保存请求进行封装,并发送到所述第二通讯模块20;所述第二通讯模块20解析已封装的数据特征码、数据类型和数据共享保存请求;所述第二处理模块21接收解析出的数据共享保存请求之后,依据解析出的数据类型,所述特征码检索模块24在相应数据类型的特征码字典23进行数据特征码检索;依据检索出的数据特征码;所述用户管理模块26建立用户与待共享保存数据之间的链接;
这里,因为是共享保存数据,所以,在当前用户发送共享保存数据请求前,已经存在其它用户建立起待共享保存数据、数据特征码之间的链接,所以,此处所述特征码维护模块22无需再建立当前用户的待共享保存数据与数据特征码之间的链接。
本发明还提供了一种用户端,所述用户端的具体组成结构及各部分功能与图2中所述用户端1相同;
本发明还提供了一种云存储服务器,所述云存储服务器的具体组成结构及各部分功能与图2中的所述云存储服务器2相同。
基于上述云存储系统,本发明还提供了一种云存储方法,将全局摘要字典分成不同数据类型的特征码字典;该方法还包括:
步骤A:产生业务请求,提取数据特征码和数据类型,并对数据特征码、数据类型和业务请求封装后发送;
步骤B:接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理;
其中,所述业务请求包括:上传数据请求、数据删除请求、数据共享保存请求等等。
基于上述云存储系统及方法,所述一种云存储系统实现上传数据业务的具体过程如图3-1,3-2所示,所述过程包括:
步骤301:所述第一处理模块10产生上传数据请求;
步骤302:依据现有算法,所述提取模块11提取待上传数据的数据特征码和数据类型;
其中,所述现有算法包括:现有技术中的循环冗余校验算法(CRC,CyclicRedundancy Check)、拉宾指纹算法(Rabin)、消息摘要算法(MD5,MessageDigest Algorithm)、安全散列算法SHA1、SHA256(Secure Hash Algorithm)等方法及其相应的变种方法;
所述文件由待上传数据组成;所述提取数据类型为:通过采用读取文件后缀名或读取文件头部来解析文件类型等方法,由所述提取模块11提取出待上传数据的数据类型。
步骤303:依据HTTP所述第一通讯模块12对所述数据特征码、数据类型和上传数据请求进行封装,并发送到所述第二通讯模块20;
步骤304:依据HTTP所述第二通讯模块12接收已封装的上传数据请求、数据特征码和数据类型,并对已封装的数据特征码、数据类型和上传数据请求进行解析,解析出所述数据特征码、数据类型和上传数据请求;
步骤305:所述第二处理模块21接收所述第二通讯模块20解析出的上传数据请求之后,依据解析出的所述数据类型,所述特征码检索模块24以所述数据特征码作为关键字,在相应数据类型的特征码字典23中进行数据特征码检索;
当所述特征码检索模块24检索出所述数据特征码时,如图3-1所示,执行步骤306;
当所述特征码检索模块24没有检索出所述数据特征码时,如图3-2所示,执行步骤308;
步骤306:所述特征码维护模块22建立待上传数据与所述数据特征码之间的链接,所述用户管理模块26建立待上传数据与使用所述数据的用户之间的链接,继续执行步骤307;
这里,所述特征码维护模块22建立链接为:所述特征码维护模块22按照“数据”、“数据特征码”等属性格式将数据、数据特征码进行关联保存;
在对本发明的技术方案进行说明时,只要涉及特征码维护模块22建立链接的,含义均与上述说明相同;
所述用户管理模块26建立链接为:所述用户管理模块26按照“数据”、“使用该数据用户”等属性格式将数据、使用该数据的用户进行关联保存;
在对本发明的技术方案进行说明时,只要涉及用户管理模块26建立链接的,含义均与上述说明相同;
步骤307:所述云存储服务器2返回“上传成功”并通过所述第一通讯模块12、第二通讯模块20给所述用户端1,结束当前处理流程;
步骤308:所述云存储服务器2返回“数据不存在”,并通过所述第一通讯模块12、第二通讯模块20请求所述用户端1上传数据,执行步骤309;
步骤309:所述第一处理模块10接收到所述云存储服务器2返回的“请求上传数据”,产生“回复请求上传数据”;保存在所述第一处理模块10中的待上传数据,连同“回复请求上传数据”、之前提取的数据特征码和数据类型,通过所述第一通讯模块12进行封装,之后发送至所述云存储服务器2,执行步骤310;
步骤310:所述第二通讯模块20解析出所述数据特征码、数据类型和“回复请求上传数据”,所述第二处理模块21接收“回复请求上传数据”之后,所述存储模块26存储上传数据,执行步骤311;
步骤311:所述特征码维护模块22将所述数据特征码添加到所述相应数据类型的特征码字典23,执行步骤312;
步骤312:所述特征码维护模块22建立数据与数据特征码之间的链接,所述用户管理模块26建立数据与使用该数据的用户之间的链接,执行步骤313;
步骤313:所述云存储服务器2返回“数据上传成功”并通过所述第一通讯模块、第二通讯模块给所述用户端1。
所述一种云存储系统实现数据删除业务的具体过程如图4-1、图4-2所示,具体过程包括:
步骤401:所述第一处理模块10产生数据删除请求;
步骤402:依据现有算法,所述提取模块11提取待删除数据的数据特征码和数据类型;
其中,所述现有算法包括:现有技术中的CRC、Rabin、MD5、SHA1和SHA256方法及其相应的变种方法;
所述文件由待删除数据组成;所述提取数据类型为:通过采用读取文件后缀名或读取文件头部来解析文件类型等方法,由提取模块11提取出待删除数据的数据类型;
步骤403:依据HTTP所述第一通讯模块12对所述数据特征码、数据类型和数据删除请求进行封装,并发送到所述第二通讯模块20;
步骤404:依据HTTP所述第二通讯模块20接收已封装的数据删除请求、数据特征码和数据类型,并对已封装的数据特征码、数据类型和数据删除请求进行解析,解析出所述数据特征码、数据类型和数据删除请求;
步骤405:所述第二处理模块21接收所述第二通讯模块20解析出的数据删除请求之后,依据解析出的所述数据类型,所述特征码检索模块24以数据特征码作为关键字,在相应数据类型的特征码字典23中进行数据特征码检索;
步骤406:所述特征码维护模块22判断数据特征码与当前用户是否存在链接时,执行步骤407;
步骤407:所述特征码维护模块22判断出数据特征码与当前用户存在的仍然存在链接时,如图4-1所示,执行步骤408;
所述特征码维护模块22判断出数据特征码与当前用户存在的链接已断开时,如图4-2所示,执行步骤409;
步骤408:所述用户管理模块26断开数据和使用所述数据的当前用户之间的链接,执行步骤409;
步骤409:所述特征码维护模块22再判断数据特征码与其它用户是否还存在链接,当所述特征码维护模块22判断出数据特征码与其它用户均不存在链接时,所述特征码字典23记录当前时刻为所述数据特征码的第一标记时间戳;所述云存储服务器2的后台定时检测特征码字典,当数据特征码没有与任何用户存在链接时,判断当前检测时间与第一标记时间戳的时间差是否大于第一时间阈值,当时间差大于第一时间阈值时,所述用户管理模块26将通知所述存储模块25删除所述数据、所述特征码维护模块22通知所述特征码字典23删除数据特征码,执行步骤410;
其中,所述云存储服务器2的后台定时检测特征码字典的具体操作如后续技术方案所述;
步骤410:所述云存储服务器2返回“数据删除成功”并通过所述第一通讯模块12、第二通讯模块20给所述用户端1。
这里,因为所述用户管理模块26之前已经按照“数据”、“数据特征码”“使用该数据(数据特征码)用户”等属性格式将数据、数据特征码、使用该数据(数据特征码)的用户进行了关联保存;那么,所述用户管理模块26断开链接即为释放当前用户、数据特征码、数据之间的关联保存。
在对本发明的技术方案进行说明时,只要涉及用户管理模块26断开链接的,含义均与上述说明相同;
这里,在步骤406中,在所述用户端1存在有至少一个用户使用待删除数据;例如,所述用户端1存在有用户A、用户B、用户C三个用户,这三个用户都会使用到数据A,那么,在所述用户端1发出删除数据A请求之前,所述特征码维护模块22记录有数据A与数据A特征码之间的链接;所述用户管理模块26记录有用户A与数据A之间的链接、用户B与数据A之间的链接、和用户C与数据A之间的链接;当所述用户端1的用户A发出删除数据A请求之后,所述用户管理模块26将断开数据A与用户A之间的链接,断开链接之后,用户A对数据A不可再进行读写等操作;因为用户B、用户C并没有发出删除数据A的请求,所以,所述特征码维护模块22将不会断开数据A与数据A特征码之间的链接,所述用户管理模块26将仍然维持数据A与用户B、数据A与用户C之间的链接;
也就是说,所述用户端1的用户发出数据删除请求后,所述用户管理模块26将断开数据与相应用户之间的链接;
只有所述用户端1存在的使用待删除数据A的所有用户均发出删除数据A请求的时候,所述特征码维护模块22才会断开数据A和数据A特征码之间的链接,所述用户管理模块26才会断开所有使用待删除数据A的用户与数据A之间的链接,此时为数据特征码没有和任何用户存在有链接关系,称此时数据特征码为失效特征码,失效特征码对应的数据为失效数据。
当所述第一处理模块10发出数据删除请求后,所述特征码维护模块22判断出数据特征码与使用待删除数据的所有用户存在的链接均已断开时,所述特征码字典23将记录当前时刻为所述数据特征码的第一标记时间戳,所述云存储服务器2的后台将进行如下所述的操作。
针对本发明的云存储系统进行数据删除这一业务,所述云存储服务器2的后台将定时启动清理失效特征码业务,即:所述云存储服务器2的后台定期检测所述特征码字典23,以便清除失效特征码,具体过程如图5所示:
步骤501:打开数据特征码字典;
步骤502:判断是否检测到数据特征码字典的尾部,如果是,则结束检测;否则,执行步骤503;
步骤503:读取当前数据特征码,判断当前数据特征码是否与数据、用户存在链接,如果存在,则返回步骤502;如果不存在,则执行步骤504;
步骤504:计算第一标记时间戳与当前时间的时间差,并判断所述时间差是否大于第一时间阈值,如果是,则执行步骤505,否则,返回步骤502;
步骤505:所述特征码维护模块22通知所述特征码字典23删除当前数据特征码。
在步骤505中,因为数据与数据特征码存在有一一映射的关系,所以,在所述特征码维护模块22通知所述特征码字典23删除当前数据特征码时,所述用户管理模块26通知所述存储模块25删除当前数据特征码对应的数据。
这里,所述云存储服务器2的后台需要定期检测数据特征码字典23,每检测一次需要检测到特征码字典23中的每一个数据特征码,无形当中加大了所述云存储服务器2资源的消耗,可采用现有技术中的数据删除延迟释放的方法来代替云存储服务器2的后台定期检测。
当所述用户端1产生数据删除请求时,所述云存储服务器2并不马上断开用户、数据特征码与数据之间的链接,而是将用户、数据等信息进行隐藏,并记录隐藏时间;当然,这种隐藏是在云存储系统的后台运作的,对于用户端1来说不可见;当所述用户端1的该用户再次使用到该数据时,所述云存储服务器2检测隐藏用户、数据时的时间与当前时间的时间差是否超过了第一时间阈值,当超过第一时间阈值,才断开数据与该用户之间的链接,数据与数据特征码之间的链接。
其中,所述云存储服务器2的后台检测所述特征码字典23的定期时间、所述第一时间阈值均在开发云存储系统时设置;所述数据删除延迟释放的方法可在云存储系统开发时设置。
所述云存储系统实现数据共享保存业务的过程如图6所示,本实施例中,所述用户端1存在有用户A和用户B,用户A与数据A、数据A特征码存在着链接,用户B与数据A没有存在链接,但是现在用户B想要共享数据A,那么,共享保存数据的具体实现过程如下:
步骤601:所述第一处理模块10产生数据共享保存请求;
步骤602:依据现有算法,所述提取模块11提取待共享保存数据(数据A)的数据特征码和数据类型;
其中,现有技术中的CRC、Rabin、MD5、SHA1和SHA256方法及相应的变种方法;
待共享保存数据(数据A)组成文件;所述提取数据类型为:通过采用读取文件的后缀名或者读取文件头部来解析文件类型等方法,所述提取模块11提取出待共享保存数据(数据A)的数据类型;
步骤603:依据HTTP所述第一通讯模块12对所述数据特征码、数据类型和数据共享保存请求进行封装,并发送到所述第二通讯模块20;
步骤604:依据HTTP所述第二通讯模块20接收已封装的数据共享保存请求、数据特征码(数据A特征码)和数据类型(数据A数据类型),并对已封装的数据特征码、数据类型和数据共享保存请求进行解析,解析出所述数据特征码、数据类型和数据共享保存请求;
步骤605:所述第二处理模块21接收所述第二通讯模块20解析出的数据数据共享保存请求之后,依据解析出的所述数据类型,所述特征码检索模块24以数据A特征码作为关键字,在相应数据类型的特征码字典23中进行数据A特征码检索;
步骤606:依据检索出的数据特征码,所述用户管理模块26建立用户B与数据A之间的链接;
这里,因为用户A已经使用了数据A,所述特征码维护模块22在用户A使用数据A时已经建立起所述数据A与数据A特征码之间的链接,所以此处所述特征码维护模块22无需再建立数据A与数据A特征码之间的链接。
步骤607:所述云存储服务器2返回“数据共享保存成功”并通过所述第一通讯模块12、第二通讯模块20给所述用户端1。
本发明提供的用户端及云存储服务器实现上传数据,数据删除、数据共享保存等业务的过程与图3-图6所述用户端1、所述云存储服务器2的实现过程相同。
本发明提供的一种云存储系统,将全局摘要字典分类成不同数据类型对应的特征码字典,云存储服务器对待处理业务请求的数据在相应数据类型的特征码字典中进行数据特征码检索,弥补了现有技术中需要检索全局摘要字典的缺陷。现有技术中,实现数据共享时需将共享数据保存在用户的云存储服务器中,这样便造成相同数据的重复存储;而本发明提出的共享保存,不需要将共享数据拷贝至云存储服务器中,只需要通过共享数据的用户与共享数据建立的链接便可进行数据的访问。
本发明还提供了另一种云存储系统,如图7所示,所述系统包括用户端3和云存储服务器4;其中,
所述用户端3,用于产生业务请求,切分数据形成数据块,提取每个数据块特征码,对数据块特征码和业务请求进行封装并发送;
所述云存储服务器4,用于接收并解析业务请求和数据块特征码,检索数据块特征码,并对业务请求进行处理;
所述业务请求包括:上传数据请求、数据删除请求、数据共享保存请求、数据更新请求、数据同步请求等等。
进一步的,所述用户端3包括第三处理模块30、数据切分模块31、数据块特征码提取模块32、更新检测模块33和第三通讯模块34;其中,
所述第三处理模块30,用于产生业务请求;
所述业务请求包括:上传数据请求、数据删除请求、数据共享保存请求、数据更新请求和数据同步请求等等;
所述数据切分模块31,用于将数据切分成数据块,并保存所有数据块;
这里,所述切分可以是依据现有技术中的固定长数据分块或基于内容数据分块等算法,将数据切分成数据块;
所述数据块特征码提取模块32,用于提取并保存数据块特征码;
所述更新检测模块33,用于检测用户端数据是否发生更新;
这里,所述更新依据更新检测原理进行;
所述第三通讯模块34,用于将数据块特征码和业务请求进行封装后发送至所述云存储服务器4;
这里,可依据HTTP将数据块特征码和业务请求进行封装并发送;
所述云存储服务器4包括第四通讯模块40、第四处理模块41、数据块特征码维护模块42、数据块特征码字典43、数据块特征码检索模块44、存储模块45、用户管理模块46;其中,
所述第四通讯模块40,用于接收并解析出业务请求和数据块特征码;
所述第四处理模块41:用于接收所述第四通讯模块40解析出的业务请求;
所述业务请求包括:上传数据请求、数据删除请求、数据共享保存请求、数据更新请求和数据同步请求等等;
所述数据块特征码维护模块42,用于更新所述数据块特征码字典43,定期检测所述数据块特征码字典43,并删除数据块失效特征码、维护数据块与数据块特征码之间的链接;
这里,所述数据块与数据块特征码之间存在一一映射关系,数据块与用户之间存在有一对多映射关系,那么,数据块特征码与用户之间存在有一对多映射关系;因此,在处理删除数据业务请求时,所述数据块特征码维护模块42,还用于判断数据块特征码与使用该数据块特征码的用户是否存在链接;
所述数据块特征码字典43,用于收集并保存所有数据块特征码;
所述数据块特征码检索模块44,用于以数据块特征码作为关键字,检索所述数据块特征码字典43;
所述存储模块45,用于存储用户的数据块;
所述用户管理模块46,用于维护数据块与使用该数据块的用户之间的链接;
因为数据块与数据块特征码之间存在有一一映射的关系,所述用户管理模块46还可用于维护数据块特征码与使用该数据块特征码的用户之间的链接。
所述第三处理模块30还可以产生数据下载和共享业务请求等等;对应的,所述第四处理模块41还包括接收下载业务请求等;所述云存储系统对所述数据下载和共享等业务请求的处理与现有技术中相同,在此不再赘述。
所述另一种云存储系统实现上传数据业务的过程为:
所述第三处理模块30产生上传数据请求;依据现有算法,所述数据切分模块31将数据切分成数据块,所述数据块特征码提取模块32提取待上传数据块特征码;依据HTTP所述第三通讯模块34对所述数据块特征码和上传数据请求进行封装,并发送到所述第四通讯模块40;所述第四通讯模块40解析已封装的数据块特征码和上传数据请求;所述第四处理模块接收解析出的上传数据请求之后,所述数据块特征码检索模块44在所述数据块特征码字典43中对每一个数据块特征码进行检索;
当检索出数据块特征码时,所述数据块特征码维护模块42建立数据块与数据块特征码之间的链接,所述用户管理模块46建立数据块与使用该数据块的用户之间的链接;当检索不出当前数据块特征码时,所述云存储服务器4返回“数据块不存在”给所述用户端3,所述用户端3上传数据;
所述存储模块45存储上传数据,所述数据块特征码维护模块42将所述数据块特征码添加到所述数据块特征码字典43,所述数据块特征码维护模块42建立数据块与数据块特征码之间的链接,所述用户管理模块46建立数据块与使用该数据块的用户之间的链接;
这里,所述数据块特征码维护模块42建立链接为:所述数据块特征码维护模块42按照“数据块”、“数据块特征码”等属性格式将数据块、数据块特征码进行关联保存;
在对本发明技术方案进行说明时,只要涉及数据块特征码维护模块42建立链接的,含义均与上述说明相同。
所述用户管理模块46建立链接为:所述用户管理模块46按照“数据块(数据)”、“数据块(数据)特征码”、“使用该数据块(数据)用户”等属性格式将数据、数据块(数据)特征码、使用该数据/数据块(数据块特征码)的用户进行关联保存;
在对本发明技术方案进行说明时,只要涉及用户管理模块46建立链接的,含义均与上述说明相同。
所述云存储系统实现数据删除业务的过程为:
所述用户端的所述第三处理模块30产生数据删除请求;依据现有算法,所述数据切分模块31将数据切分成数据块,所述数据块特征码提取模块32提取待删除数据块特征码;依据HTTP所述第三通讯模块34对数据块特征码和数据删除请求进行封装,并发送到所述第四通讯模块40;所述第四通讯模块40解析已封装的数据块特征码和数据删除请求;所述第四处理模块41接收所述第四通讯模块40解析出的数据删除请求之后,所述数据块特征码检索模块44在所述数据块特征码字典43中对每一个数据块特征码进行检索;所述数据块特征码维护模块42判断每一个数据块与相应数据块特征码是否存在链接的同时还判断所述数据块特征码是否与使用该数据块特征码的当前用户存在链接;
当数据块特征码与当前用户仍然存在链接时,所述用户管理模块46断开数据块特征码和使用所述数据块特征码的当前用户之间的链接;
同时,所述数据块特征码维护模块42还判断所述数据块特征码是否与其它用户存在链接;
当数据块特征码与当前用户、其它用户均不存在链接时,所述数据块特征码字典43记录当前时刻为所述数据块特征码的第二标记时间戳;
所述云存储服务器4的后台定时启动清理业务,检测数据块特征码字典43,当数据块特征码没有与任何用户存在链接时,判断当前检测时间与第二标记时间戳的时间差是否大于第二时间阈值,当时间差大于第二时间阈值时,数据块特征码字典43删除所述数据特征码,所述存储模块45删除所述数据块特征码对应的数据。
这里,因为所述用户管理模块46之前已经按照“数据块”、“数据块特征码”、“使用该数据块用户”等属性格式将数据块、使用该数据块(数据块特征码)的用户进行了关联保存;这里,所述用户管理模块46断开链接即为释放当前用户、数据块特征码、数据块之间的关联保存,即:用户管理模块46断开当前链接之后,所述用户对当前数据块不可再进行读写等操作。
在对本发明技术方案进行说明时,只要涉及用户管理模块46断开链接的,含义均与上述说明相同。
所述云存储系统实现数据共享保存业务的过程为:
所述第三处理模块30产生数据共享保存请求;依据现有算法,所述数据切分模块31将数据切分成数据块,所述数据块特征码提取模块32提取待共享保存数据块特征码;依据HTTP所述第三通讯模块34对所述数据块特征码和数据共享保存请求进行封装并发送到所述第四通讯模块40;所述第四通讯模块40解析已封装的数据块特征码和数据共享保存请求;所述第四处理模块41接收所述第四通讯模块40解析出的数据共享保存请求之后,所述数据块特征码检索模块44在所述数据块特征码字典43中对每一个数据块特征码进行检索;依据检索出来的数据块特征码,,所述用户管理模块46建立用户与数据块之间的链接;
这里,因为是共享保存数据,在当前用户发送共享保存数据请求前,已经存在其它用户建立起待共享保存数据块、数据块特征码之间的链接,所以,此处所述数据块特征码维护模块42无需再建立当前用户的待共享保存数据块与数据块特征码之间的链接。
所述云存储系统实现数据更新业务的过程为:
所述第三处理模块30产生数据更新请求;所述第三通讯模块34对数据更新请求进行封装并发送至所述第四通讯模块40,所述第四通讯模块40接收并已封装数据更新请求,所述第四通讯模块40将数据更新请求发送至所述第四处理模块40后,所述用户管理模块46读取所述数据块特征码字典43中的所有数据块特征码、读取所述存储模块45中的所有数据块,这里,将读取的数据块特征码称之为原数据块特征码集合、将读取的数据称之为原数据块集合;
所述第四通讯模块40封装并发送原数据块特征码集合、原数据块集合至所述第三通讯模块34,所述第三通讯模块34接收并解析原数据块特征码集合、原数据块集合;所述数据切分模块31对需要用户端3所有数据进行切分形成数据块,所述数据块特征提取模块32提取所有数据块的数据块特征码;将切分得到的所有数据块与原数据块特征码集合进行比对,得到需要更新的数据块,将提取得到的数据块特征码与原数据块特征码集合进行比对,得到需要更新的数据块特征码;
依据HTTP协议,所述第三通讯模块34对需要更新的数据块、数据块特征码与数据更新请求进行封装,并发送到所述第四通讯模块40;依据HTTP所述第四通讯模块40接收并对已封装需要更新的数据块、数据块特征码与数据更新请求进行解析,解析出需要更新的数据块、数据块特征码与数据更新请求;所述第四处理模块41接收解析出的数据更新请求之后,所述存储模块45存储需要更新的数据块,所述数据块特征码维护模块42添加需要更新的数据块特征码;所述数据块特征码维护模块42建立所述需要更新的数据块与所述需要更新的数据块特征码之间的链接;所述用户管理模块46建立所述需要更新的数据块与使用该数据块的用户之间的链接;
其中,所述需要更新的数据块和数据块特征码还可以通过以下方式获取:所述更新检测模块33还可依据现有技术中的更新检测原理对用户端的数据是否发生更新进行检测,当检测出需要更新的数据时,所述数据切分模块31对需要更新的数据进行切分形成需要更新的数据块、所述数据块特征提取模块32提取需要更新的数据块特征码。
所述云存储系统实现数据同步业务的过程为:
所述第三处理模块30产生数据同步请求;依据现有技术算法,所述数据切分模块31将所述用户端中所有数据进行切分,形成数据块,并保存所有数据块;所述数据块特征码提取模块32提取并保存所有数据块特征码;依据HTTP所述第三通讯模块34对所有数据块特征码进行封装,与数据同步请求一起发送到所述第四通讯模块40;依据HTTP所述第四通讯模块40接收数据同步请求、已封装所有数据块特征码,并对已封装所有数据块特征码进行解析,解析出所有数据块特征码;所述第四处理模块41接收来自所述第四通讯模块40解析出的数据同步请求之后,所述数据块特征码检索模块44将所述用户端3发来的所有数据块特征码,与保存在所述数据块特征码字典43中的所有数据块特征码进行对比;
当数据块特征码检索模块44对比出所述数据块特征码字典中部分数据块特征码没有出现在所述用户端3发来的所有数据块特征码中时,所述存储模块45将生成待共享数据块列表,所述数据块特征码维护模块42将生成待共享数据块特征码列表并发送至所述用户端3;依据待共享数据块列表,所述数据切分模块31添加待共享数据块;依据待共享数据块特征码列表,所述数据块特征码提取模块32添加待共享数据块特征码。
同时,本发明又提供了另一种用户端,所述用户端的具体组成结构及各部分功能与图7所述用户端3相同;
本发明又提供了另一种云存储服务器,所述云存储服务器的具体组成结构及各部分功能与图7所述云存储服务器4相同。
基于上述另一种云存储系统,本发明还提供了另一种云存储方法,该方法包括:
步骤C:产生业务请求,切分数据形成数据块,提取数据块特征码,对数据块特征码和业务请求进行封装并发送;
步骤D:接收并解析业务请求和数据块特征码,检索数据块特征码,并对业务请求进行处理。
具体的,所述另一种云存储系统实现上传数据业务的具体过程如图8-1,8-2所示,所述过程为:
步骤8a:所述第三处理模块30产生上传数据请求;
步骤8b:依据现有数据切分算法,所述数据切分模块31将当前数据切分成数据块,并保存所有数据块;依据现有数据提取算法,所述数据块特征码提取模块32提取上传数据的每个数据块特征码,并保存当前数据所有数据块特征码;
其中,所述现有数据切分算法包括:固定长数据分块或基于内容数据分块等算法;
所述现有数据提取算法包括:CRC、Rabin、MD5、SHA1、SHA256等方法及其相应的变种方法;
步骤8c:依据HTTP,所述第三通讯模块34对当前数据的所有数据块特征码和上传数据请求进行封装,并发送到所述第四通讯模块40;
步骤8d:依据HTTP,所述第四通讯模块40接收已封装上传数据请求、当前数据的所有数据块特征码,并对已封装当前数据的所有数据块特征码和上传数据请求进行解析,解析出所有当前数据的数据块特征码和上传数据请求;
步骤8e:所述第四处理模块41接收来自所述第四通讯模块40解析出的上传数据请求之后,所述数据块特征码检索模块44以当前数据的每个数据块特征码作为关键字,逐一在所述数据块特征码字典43中进行相应数据块特征码的检索;
当所述数据块特征码检索模块44检索出当前数据所有数据块特征码均存在,如图8-1所示,执行步骤8f;
当所述数据块特征码检索模块44检索出当前数据部分数据块特征码不存在或当前数据所有数据块特征码均不存在时,如图8-2所示,执行步骤8g;
步骤8f:所述数据块特征码维护模块42建立当前数据的数据块与相应数据块特征码之间的链接,所述用户管理模块46建立当前数据与使用当前数据的用户之间的链接,继续执行步骤8L;
这里,所述数据块特征码维护模块42建立链接即为所述数据块特征码维护模块42按照“数据块”、“数据块特征码”等属性格式将数据块、数据块特征码进行关联保存;
在对本发明技术方案进行说明时,只要涉及数据块特征码维护模块42建立链接的,含义均与上述说明相同;
所述用户管理模块46建立链接即为所述用户管理模块46按照“数据(块)”、“使用该数据(块)用户”等属性格式将数据、使用该数据(块)的用户进行关联保存;
在对本发明技术方案进行说明时,只要涉及用户管理模块46建立链接的,含义均与上述说明相同;
步骤8g:所述云存储服务器4发出“数据块不存在”,并将需要所述用户端3上传的当前数据的数据块形成一个待上传数据块列表;所述“数据块不存在”同所述待上传数据块列表通过所述第三通讯模块34、第四通讯模块40给所述用户端3;
步骤8h:所述第三处理模块30接收来自所述云存储服务器4返回的“数据块不存在”状态时,产生“数据块已上传”;依据所述待上传数据块列表,所述用户端3将保存在所述数据切分模块31中相应的数据块,保存在所述数据块特征码提取模块32中相应数据块特征码,同“数据块已上传”一起通过所述第三通讯模块进行封装后发送至所述云存储服务器4,继续执行步骤8i;
步骤8i:所述第四通讯模块40解析出当前数据待上传数据块和相应数据块特征码,所述第四处理模块41接收“数据块已上传”之后,所述存储模块45存储所述用户端3待上传数据块,继续执行步骤8j;
步骤8j:所述数据块特征码维护模块42将待上传数据块特征码添加到所述数据块特征码字典43,继续执行步骤8k;
步骤8k:所述数据块特征码维护模块42建立待上传数据块与相应数据块特征码之间的链接,所述用户管理模块46建立待上传数据块与使用该数据块的用户之间的链接,继续执行步骤8L;
步骤8L:所述云存储服务器4返回“数据上传成功”并通过所述第三通讯模块34、第四通讯模块40发送给所述用户端3。
所述另一种云存储系统实现数据删除业务的具体过程如图9-1、图9-2所示,具体过程包括:
步骤9a:所述第三处理模块30产生数据删除请求;
步骤9b:依据现有数据切分算法,所述数据切分模块31将当前数据切分成数据块,并保存所有数据块;依据现有数据提取算法,所述数据块特征码提取模块32提取每个数据块特征码,并保存当前数据所有数据块特征码;
其中,所述现有数据切分算法包括:固定长数据分块或基于内容数据分块等算法;
所述现有数据提取算法包括:现有技术中的CRC、Rabin、MD5、SHA1、SHA256等方法及其相应的变种方法;
步骤9c:依据HTTP,所述第三通讯模块34对当前数据所有数据块特征码和数据删除请求进行封装,并发送到所述第四通讯模块40;
步骤9d:依据HTTP,所述第四通讯模块40接收已封装数据删除请求、当前数据所有数据块特征码,并对已封装数据删除请求和当前数据所有数据块特征码进行解析,解析出当前数据所有数据块特征码和数据删除请求;
步骤9e:所述第三处理模块41接收所述第四通讯模块40解析出的数据删除请求之后,所述数据块特征码检索模块44以每个数据块特征码作为关键字,逐一在所述数据块特征码字典43中进行相应数据块特征码的检索;
步骤9f:所述数据块特征码维护模块42判断当前数据块特征码与当前用户是否存在链接;
当判断出当前数据块特征码与使用该数据块的当前用户存在链接时,如图9-1所示,执行步骤9g;
当判断出当前数据块特征码与使用该数据块的当前用户已断开链接时,如图9-2所示,执行步骤9h;
步骤9g:所述用户管理模块46断开数据块和使用该数据块的当前用户之间的链接,执行步骤9h;
步骤9h:所述数据块特征码维护模块42再判断数据块特征码与其它用户是否还存在链接,当所述数据块特征码维护模块42判断出数据块特征码与其它用户均不存在链接时,所述数据块特征码字典43记录当前时刻为所述数据块特征码的第二标记时间戳;
所述云存储服务器4的后台定时检测所述数据块特征码字典43,当数据块特征码没有与任何用户存在链接时,判断当前检测时间与第二标记时间戳的时间差是否大于第二时间阈值,当时间差大于第二时间阈值时,所述用户管理模块46将通知所述存储模块45删除所述数据块、所述数据块特征码维护模块42通知所述数据块特征码字典43删除数据块特征码,执行步骤9i;
步骤9i;所述云存储服务器4返回“数据删除成功”并通过所述第三通讯模块13、第四通讯模块40给所述用户端3。
这里,因为所述用户管理模块46之前已经按照“数据块”、“数据块特征码”“使用该数据块用户”等属性格式将数据块、“数据块特征码”、使用该数据块(数据块特征码)的用户进行了关联保存;这里,所述用户管理模块46断开链接即为释放当前用户、数据块特征码、数据块之间的关联保存;
在对本发明技术方案进行说明时,只要涉及用户管理模块46断开链接的,含义均与上述说明相同;
这里,在步骤9f中,在所述用户端3存在有至少一个用户使用某一个待删除数据块;例如,所述用户端3存在有用户A、用户B、用户C三个用户,这三个用户均会使用到数据块A1,那么在所述用户端3发出删除数据A的请求之前,所述数据A可切分成数据块A1和其它数据块,所述数据块特征码维护模块42记录有数据块A1与数据块A1特征码之间的链接;所述用户管理模块46记录有用户A与数据块A1之间的链接、用户B与数据块A1之间的链接、和用户C与数据块A1之间的链接;
当所述用户端3的用户A发出删除数据A(也是删除数据块A1)请求之后,所述用户管理模块46将断开数据块A1与用户A之间的链接,断开链接之后,用户A对数据块A1不可再进行读写等操作;因为用户B、用户C并没有发出删除数据A(也是删除数据块A1)的请求,所以,所述数据块特征码维护模块42将不会断开数据块A1与数据块A1特征码之间的链接,所述用户管理模块46将仍然维持数据块A1与用户B、数据块A1与用户C之间的链接;
也就是说,所述用户端3的用户发出删除数据块请求后,所述用户管理模块46将断开待删除数据块与相应用户之间的链接;
只有所述用户端3存在的使用待删除数据块A1的所有用户均发出删除数据块A1请求的时候,所述数据块特征码维护模块42才会断开数据块A1和数据块A1特征码之间的链接,所述用户管理模块46才会断开所有使用数据块A1的用户与数据块A1之间的链接,此时为数据块特征码没有和任何用户存在有链接关系,那么,称此时数据块特征码为失效数据块特征码,失效数据块特征码对应的数据为失效数据(数据块)。
针对另一种云存储系统进行数据删除这一业务,所述云存储服务器4的后台将定时启动清理失效数据块特征码业务,即:所述云存储服务器4的后台定期检测所述数据块特征码字典43,以便清除失效数据块特征码,具体过程如图9-3所示:
步骤90a:打开数据块特征码字典;
步骤90b:判断是否检测到数据块特征码字典的尾部,如果是,则结束检测;否则,执行步骤90c;
步骤90c:读取当前数据块特征码,判断当前数据块特征码是否与数据块、用户存在链接,如果存在,则返回步骤90b;如果不存在,则执行步骤90d;
步骤90d:计算第二标记时间戳与当前时间的时间差,并判断所述时间差是否大于第二时间阈值,如果是,则执行步骤90e,否则返回步骤90b;
步骤90e:所述数据块特征码维护模块42通知所述数据块特征码字典43删除当前数据块特征码。
在步骤90e中,因为数据块与数据块特征码存在有一一映射的关系,所以在所述数据块特征码维护模块42通知所述数据块特征码字典43删除当前数据块特征码时,所述用户管理模块46通知所述存储模块45删除当前数据块特征码对应的数据块。
这里,所述云存储服务器4的后台需要定期检测数据块特征码字典43,每检测一次需要检测到数据块特征码字典43中的每一个数据块特征码,无形当中加大了所述云存储服务器4资源的消耗,可采用现有技术中的数据删除延迟释放的方法来代替云存储服务器2的后台的定期检测。
当所述用户端3产生数据删除请求时,所述云存储服务器4并不马上断开用户、数据块特征码与数据块之间的链接,而是将用户、数据块等信息进行隐藏,并记录隐藏时间;当然这种隐藏是在云存储系统的后台运作的,对于用户端3来说不可见;当所述用户端3的该用户再次使用到该数据块时,所述云存储服务器4检测隐藏用户、数据块时的时间与当前时间的时间差是否超过了第二时间阈值,当超过了第二时间阈值,才断开数据块与该用户之间的链接,数据块与数据块特征码之间的链接。
其中,所述云存储服务器4的后台检测所述数据块特征码字典43的定期时间、所述第二时间阈值均由开发云存储系统时设置;所述数据删除延迟释放的方法可在云存储系统开发时设置。
具体的,所述另一种云存储系统实现数据共享保存业务的过程如图10所示,本实施例中,所述用户端3存在有用户A和用户B,用户A使用数据A,数据A被切分成数据块A1和数据块A2,即用户A与数据块A1之间存在链接、用户A与数据块A2存在链接;用户B与数据A没有存在链接,但是现在用户B想要与用户A共享数据A,那么共享保存业务的具体实现过程如下:
步骤10a:所述第三处理模块30产生数据共享保存请求;
步骤10b:依据现有数据切分算法,所述数据切分模块31将数据A切分成数据块A1和数据块A2,并保存数据块A1和数据块A2;
依据现有数据提取算法,所述数据块特征码提取模块32提取数据块A1特征码和数据块A2特征码,并保存数据块A1特征码和数据块A2特征码;
其中,所述现有数据切分算法包括:固定长数据分块或基于内容数据分块等算法;
所述现有数据提取算法包括:现有技术中的CRC、Rabin、MD5、SHA1、SHA256等方法及其相应的变种方法;
步骤10c:依据HTTP,所述第三通讯模块34对数据块A1特征码和数据块A2特征码和数据共享保存请求进行封装,并发送到所述第四通讯模块40;
步骤10d:依据HTTP,所述第四通讯模块40接收已封装数据共享保存请求和所有数据块特征码,并解析出数据块A1特征码、数据块A2的特征码和数据共享保存请求;
步骤10e:所述第四处理模块41接收所述第四通讯模块40解析出的数据共享保存请求之后,所述数据块特征码检索模块44分别以数据块A1特征码和数据块A2特征码作为关键字,逐一在所述数据块特征码字典43中进行相应数据块特征码检索;
步骤10f:依据检索出来的数据块A1特征码和数据块A2特征码,所述用户管理模块46建立用户B与数据块A1、数据块A2之间的链接;
这里,因为用户A已经使用了数据A,所述特征码维护模块42在用户A使用数据A时已经建立起所述数据块A1与数据块A1特征码、数据块A2与数据块A2特征码之间的链接,所以,所述数据块特征码维护模块42无需再建立数据块A1与数据A1特征码、数据块A2与数据块A2特征码之间的链接。
步骤10g:所述云存储服务器4返回“数据共享保存成功”并通过所述第三通讯模块34、第四通讯模块40给所述用户端3。
实际应用中,另一种云存储系统中存在着所述用户端3中的数据为最新的,而所述云存储服务器4中保存的数据为原始的这一情况,那么所述云存储系统将如下技术方案所述,来完成更新所述云存储服务器4中的数据的过程。
依据更新检测原理,所述更新检测模块33实时检测用户端是否发生了数据更新。这里,采用滑动窗口的方法,预先设置滑动窗口的长度M(M为正整数)即为数据块的长度,所述的更新检测原理具体实现过程为:
步骤11a:所述更新检测模块33实时读取所述数据块特征码字典43,称被读取的数据块特征码信息为原始数据块特征码集合;
同时,所述更新检测模块33读取当前所述数据块切分模块31保存的数据块,称被读取的当前数据块信息为最新数据块集合;
步骤11b:从所述最新数据块集合的头部开始,所述更新检测模块33滑动滑动窗口到所述最新数据块集合的第一个M长度;
步骤11c:计算当前滑动窗口中的数据块特征码;
步骤11d:判断计算出来的当前窗口中的数据块特征码是否存在于所述原始数据块特征码集合中,
当计算出来的当前滑动窗口中的数据块特征码存在于所述原始数据块特征码集合时,执行步骤11e:
当计算出来的当前滑动窗口中的数据块特征码不存在于所述原始数据块特征码集合时,执行步骤11f:
步骤11e:说明当前滑动窗口中的数据块存在于所述云存储服务器4中,所述用户端3无需上传当前滑动窗口中的数据块到所述云存储服务器4中,执行步骤11g;
步骤11f:说明当前滑动窗口中的数据块不存在于所述云存储服务器4中,当前滑动窗口中的数据块为需要更新的数据块,所述数据切分模块31保存所述需要更新的数据块,所述数据块特征提取模块32保存所述需要更新的数据块特征值,并按照图12所示,将所述需要更新的数据块和数据块特征值上传至所述云存储服务器4中,执行步骤11g;
步骤11g:从当前滑动窗口中的数据块的尾部开始,滑动滑动窗口到所述最新数据块集合的下一个M长度,返回步骤11c,直至滑动窗口滑动到所述最新数据块集合的尾部。
具体的,所述另一种云存储系统实现数据更新业务的具体过程如图12所示,所述过程包括:
步骤12a:所述第三处理模块30产生数据更新请求;
步骤12b:所述第三通讯模块34对数据更新请求进行封装并发送至所述第四通讯模块40,所述第四通讯模块40接收并已封装数据更新请求,所述第四通讯模块40将数据更新请求发送至所述第四处理模块40后,所述用户管理模块46读取所述数据块特征码字典中的所有数据块特征码、读取所述存储模块45中的所有数据块,这里,将读取的数据块特征码称之为原数据块特征码集合、将读取的数据称之为原数据块集合;
所述第四通讯模块40封装并发送原数据块特征码集合、原数据块集合至所述第三通讯模块34,所述第三通讯模块34接收并解析原数据块特征码集合、原数据块集合;
步骤12c:所述数据切分模块31对用户端3所有数据进行切分形成数据块,所述数据块特征提取模块32提取所有数据块的数据块特征码;将切分得到的所有数据块与原数据块特征码集合进行比对,得到需要更新的数据块,将提取得到的数据块特征码与原数据块特征码集合进行比对,得到需要更新的数据块特征码;
这里,所述步骤12b和步骤12c还可以为:所述用户端3通过上述更新检测原理,检测出需要更新的数据,进而所数据切分模块31对需要更新的数据进行切分形成需要更新的数据块,所述数据块特征提取模块32对提取需要更新的数据块的数据块特征码;
步骤12d:依据HTTP协议,所述第三通讯模块34对需要更新的数据块、需要更新的数据块特征码和数据更新请求进行封装并发送至所述第四通讯模块40;
步骤12e:所述第四通讯模块40接收已封装数据更新请求、需要更新的数据块和数据块特征码,并依据HTTP协议,解析出需要更新的数据块、数据块特征码和数据更新请求;
步骤12f:所述第四处理模块41接收所述第四通讯模块40解析出的数据更新请求之后,所述存储模块45存储所述需要更新的数据块,所述数据块特征码维护模块42添加所述需要更新的数据块特征码到所述数据块特征码字典43;
步骤12g:所述数据块特征码维护模块42建立所述需要更新的数据块与所述需要更新的数据块特征码之间的链接;
步骤12h:所述用户管理模块46建立所述需要更新的数据块与使用该数据块的用户之间的链接;
步骤12i:所述云存储服务器返回“数据更新成功”通过所述第三通讯模块34、第四通讯模块40发送至所述用户端3;
这里,在所述用户端3进行更新检测和所述云存储系统进行数据更新时,是以数据块特征码进行说明的。此外,还可以用现有技术中数据块弱特征码来替换上述技术方案的数据块特征码,因为计算数据块弱特征码耗费的资源小于计算数据块特征码耗费的资源。
在实际应用中,另一种云存储系统还存在下面所述的情况:第一天晚上,用户A在家里电脑上更改了文件A,并将更改后的文件A从家里的电脑上传到所述云存储服务器4中,而第二天,当用户A在公司里的电脑打开文件A的时候,打开的仍然是未更改的文件A,也就是说,当所述用户端3存在多个终端(如公司电脑、家里电脑)的时候,多个终端中的数据需要通过所述云存储服务器4进行同步。
所述另一种云存储系统实现数据同步业务的具体过程如图13所示,具体实现过程包括:
步骤13a:所述第三处理模块30产生数据同步请求;
步骤13b:依据现有数据切分算法,所述数据切分模块31将所述用户端1中所有数据进行切分,形成数据块,并保存所有数据块;依据现有数据提取算法,所述数据块特征码提取模块32提取所有数据块特征码并保存所有数据块特征码;
其中,所述现有数据切分算法包括:固定长数据分块或基于内容数据分块等算法;
所述现有数据提取算法包括:现有技术中的CRC、Rabin、MD5、SHA1、SHA256等方法及其相应的变种方法;
步骤13c:依据HTTP,所述第三通讯模块34对所有数据块特征码和数据同步请求进行封装,并发送到所述第四通讯模块40;
步骤13d:依据HTTP,所述第四通讯模块40接收已封装数据同步请求和所有数据块特征码,并对已封装所有数据块特征码和数据同步请求进行解析,解析出所有数据块特征码和数据同步请求;
步骤13e:所述第四处理模块41接收所述第四通讯模块40解析出的数据同步请求之后,所述数据块特征码检索模块44将所述用户端3发送来的所有数据块特征码与保存在所述数据块特征码字典43中的所有数据块特征码进行对比;
当对比出所述数据块特征码字典43中部分数据块特征码没有出现在所述用户端3发送来的所有数据块特征码中,称所述部分数据块特征码为待共享数据块特征码,称待共享数据块特征码对应的数据块为待共享数据块,继续执行步骤13f;
步骤13f:所述存储模块45将生成待共享数据块列表,所述待共享数据块列表记录有待共享数据块;
所述数据块特征码维护模块42将生成待共享数据块特征码列表,所述待共享数据块特征码列表记录有待共享数据块特征码;
步骤13g:所述云存储服务器4返回“数据已同步”,连同待共享数据块列表、待共享数据块特征码列表通过第三通讯模块34、第四通讯模块40发送至所述用户端3;
步骤13h:所述用户端3接收到“数据已同步”之后,依据待共享数据块列表,所述数据切分模块31添加待共享数据块;依据待共享数据块特征码列表,所述数据块特征码提取模块32添加待共享数据块特征码,所述用户端3完成数据同步。
本发明提供的用户端及云存储服务器实现上传数据,数据删除、数据共享保存、数据更新、数据同步等业务的过程与图8-图13所述用户端3、所述云存储服务器4的实现过程相同。
本发明提供的另一种云存储系统,用户端将数据进行切分形成数据块,并提取数据块特征码,云存储服务器检索数据块特征码,当云存储服务器端没有检索出来数据块特征码,则用户端上传相应数据块到云存储服务器端;避免了现有技术中上传所有数据到云存储服务器的缺陷,释放了云存储服务器存储空间,减小了带宽资源的耗费。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (22)
1.一种云存储系统,其特征在于,该系统包括用户端和云存储服务器;其中,
所述用户端,用于产生业务请求,提取数据特征码和数据类型,并对数据特征码、数据类型和业务请求封装后一起发送;
所述云存储服务器,用于将全局摘要字典分成不同数据类型的特征码字典,接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理。
2.根据权利要求1所述的云存储系统,其特征在于,所述用户端进一步包括第一处理模块、提取模块和第一通讯模块;其中,
所述第一处理模块,用于产生业务请求;
所述提取模块,用于提取业务请求数据的数据特征码和数据类型;
所述第一通讯模块,用于将提取的数据特征码、数据类型与业务请求进行封装,并发送至所述云存储服务器。
3.根据权利要求1或2所述的云存储系统,其特征在于,所述云存储服务器进一步包括第二通讯模块、第二处理模块、特征码维护模块、特征码字典、特征码检索模块、存储模块和用户管理模块;其中,
所述第二通讯模块,用于接收业务请求、数据特征码和数据类型,并解析出数据特征码、数据类型和业务请求;
所述第二处理模块,用于接收解析出的业务请求;
所述特征码维护模块,用于定期检测所述特征码字典,删除失效特征码、更新所述特征码字典、维护数据与数据特征码之间的链接;
所述特征码字典,用于收集并保存按照数据类型分类的数据特征码;
所述特征码检索模块,用于依据数据类型,以数据特征码作为关键字,检索相应数据类型的特征码字典;
所述存储模块,用于存储用户的数据;
所述用户管理模块,用于维护数据与使用该数据的用户之间的链接。
4.一种云存储方法,其特征在于,将全局摘要字典分成不同数据类型的特征码字典;该方法还包括:
产生业务请求,提取数据特征码和数据类型,并对数据特征码、数据类型与业务请求进行封装后发送;
接收并解析数据特征码、数据类型及业务请求,依据数据类型对业务请求进行处理。
5.根据权利要求4所述的云存储方法,其特征在于,所述业务请求为上传数据请求;上传数据业务包括:
用户端的第一处理模块产生上传数据请求;提取模块提取待上传数据的数据特征码和数据类型;依据HTTP第一通讯模块对所述数据特征码、数据类型和上传数据请求进行封装,并发送到第二通讯模块;
第二通讯模块接收并解析已封装的数据特征码、数据类型和上传数据请求;第二处理模块接收解析出的数据特征码、数据类型和上传数据请求之后,依据解析出的数据类型,特征码检索模块以数据特征码作为关键字,在相应数据类型的特征码字典中进行数据特征码检索;
当检索出数据特征码时,特征码维护模块建立数据与数据特征码之间的链接,用户管理模块建立数据与使用该数据的用户之间的链接;
当检索不出数据特征码时,所述云存储服务器返回“请求上传数据”给所述用户端;所述用户端上传数据,存储模块存储上传数据,特征码维护模块将数据特征码添加到相应数据类型的特征码字典,特征码维护模块建立数据与数据特征码之间的链接,用户管理模块建立数据与使用该数据的用户之间的链接。
6.根据权利要求4所述的云存储方法,其特征在于,所述业务请求为数据删除请求;删除数据业务包括:
用户端的第一处理模块产生数据删除请求;提取模块提取待删除数据的数据特征码和数据类型;依据HTTP第一通讯模块对所述数据特征码、数据类型和数据删除请求进行封装,并发送到第二通讯模块;
第二通讯模块接收并解析已封装的数据特征码、数据类型和数据删除请求;第二处理模块接收解析出的数据特征码、数据类型和数据删除请求之后,依据解析出的数据类型,特征码检索模块以数据特征码作为关键字,在相应数据类型的特征码字典中进行数据特征码检索;
特征码维护模块判断数据特征码与使用数据特征码的当前用户是否存在链接,当数据特征码与当前用户仍然存在链接时,用户管理模块断开数据特征码和相应用户之间的链接;
所述特征码维护模块判断数据特征码是否仍与使用数据特征码的其他用户存在链接;
当数据特征码与使用数据特征码的用户均不存在链接时,所述特征码字典记录当前时刻为所述数据特征码的第一标记时间戳。
7.根据权利要求6所述的云存储方法,其特征在于,所述特征码字典记录第一标记时间戳之后;
所述云存储服务器的后台定时启动清理业务,检测特征码字典,当数据特征码没有与任何用户存在链接时,判断当前检测时间与第一标记时间戳的时间差是否大于第一时间阈值,当时间差大于第一时间阈值时,特征码字典删除所述数据特征码,所述存储模块删除数据特征码对应的数据。
8.根据权利要求4所述的云存储方法,其特征在于,所述业务请求为数据共享保存请求;共享保存数据包括:
第一处理模块产生数据共享保存请求;提取模块提取待共享保存数据的数据特征码和数据类型;依据HTTP第一通讯模块对所述数据特征码、数据类型和数据共享保存请求进行封装,并发送到第二通讯模块;
第二通讯模块接收并解析已封装的数据特征码、数据类型和数据共享保存请求;第二处理模块接收解析出的数据特征码、数据类型和数据共享保存请求之后,依据解析出的数据类型,特征码检索模块以数据特征码为关键字,在相应数据类型的特征码字典中进行数据特征码检索;依据检索出的数据特征码,用户管理模块建立用户与待共享保存数据之间的链接。
9.一种用户端,其特征在于,该用户端包括:第一处理模块、提取模块和第一通讯模块;其中,
所述第一处理模块,用于产生业务请求;
所述提取模块,用于提取业务请求数据的数据特征码和数据类型;
所述第一通讯模块,用于封装并发送已提取的数据特征码、数据类型与业务请求。
10.一种云存储服务器,其特征在于,该云存储服务器包括:第二通讯模块、第二处理模块、特征码维护模块、特征码字典、特征码检索模块、存储模块和用户管理模块;其中,
所述第二通讯模块,用于接收业务请求、数据特征码和数据类型,并解析出数据特征码、数据类型和业务请求;
所述第二处理模块,用于接收解析出的业务请求;
所述特征码维护模块,用于定期检测所述特征码字典,删除失效特征码、更新所述特征码字典、维护数据与数据特征码之间的链接;
所述特征码字典,用于收集并保存按照数据类型分类的数据特征码;
所述特征码检索模块,用于依据数据类型,以数据特征码作为关键字,检索相应数据类型的特征码字典;
所述存储模块,用于存储用户的数据;
所述用户管理模块,用于维护数据与使用该数据的用户之间的链接。
11.一种云存储系统,其特征在于,该系统包括用户端和云存储服务器;其中,
所述用户端,用于产生业务请求,切分数据形成数据块,提取每个数据块特征码,对数据块特征码和业务请求进行封装并发送;
所述云存储服务器,用于接收并解析业务请求和数据块特征码,检索数据块特征码,并对业务请求进行处理。
12.根据权利要求11所述的云存储系统,其特征在于,所述用户端包括:第三处理模块、数据切分模块、数据块特征码提取模块、更新检测模块和第三通讯模块;其中,
所述第三处理模块,用于产生业务请求;
所述数据切分模块,用于将数据切分成数据块,并保存数据块;
所述数据块特征码提取模块,用于提取并保存数据块特征码;
所述更新检测模块,用于检测用户端数据是否发生更新;
所述第三通讯模块,用于将数据块特征码和业务请求进行封装后发送至所述云存储服务器。
13.根据权利要求11或12所述的云存储系统,其特征在于,所述云存储服务器包括第四通讯模块、第四处理模块、数据块特征码维护模块、数据块特征码字典、数据块特征码检索模块、存储模块和用户管理模块;其中,
所述第四通讯模块,用于接收并解析出业务请求和数据块特征码;
所述第四处理模块:用于接收所述第四通讯模块解析出的业务请求;
所述数据块特征码维护模块,用于更新所述数据块特征码字典,定期检测所述数据块特征码字典,并删除数据块失效特征码、维护数据块与数据块特征码之间的链接;
所述数据块特征码字典,用于收集并保存数据块特征码;
所述数据块特征码检索模块,用于以数据块特征码作为关键字,检索所述数据块特征码字典;
所述存储模块,用于存储用户的数据块;
所述用户管理模块,用于维护数据块与使用该数据块的用户之间的链接。
14.一种云存储方法,其特征在于,该方法包括:
产生业务请求,切分数据形成数据块,提取数据块特征码,对数据块特征码和业务请求进行封装并发送;
接收并解析业务请求和数据块的特征码,检索数据块特征码,并对业务请求进行处理。
15.根据权利要求14所述的云存储方法,其特征在于,所述业务请求为上传数据请求;上传数据业务包括:
第三处理模块产生上传数据请求;数据切分模块将待上传数据切分成数据块,数据块特征码提取模块提取待上传数据的数据块特征码;第三通讯模块对待上传数据的所有数据块特征码和上传数据请求进行封装,并发送到第四通讯模块;
所述第四通讯模块接收并解析已封装的数据块特征码和上传数据请求;第四处理模块接收解析出的上传数据请求之后,数据块特征码检索模块以待上传数据的每个数据块特征码作为关键字,在数据块特征码字典中进行数据块特征码检索;
当检索出数据块特征码时,数据块特征码维护模块建立数据块与数据块特征码之间的链接,用户管理模块建立数据块与使用该数据块的用户之间的链接;当检索不出数据块特征码时,所述云存储服务器返回“数据块不存在”给所述用户端,所述用户端上传数据,存储模块存储上传数据,数据块特征码维护模块将数据块特征码添加到数据块特征码字典,数据块特征码维护模块建立数据块与数据块特征码之间的链接,用户管理模块建立数据块与使用该数据块的用户之间的链接。
16.根据权利要求14所述的云存储方法,其特征在于,所述业务请求为数据删除请求;删除数据业务包括:
第三处理模块产生数据删除请求;数据切分模块将数据切分成数据块,数据块特征码提取模块提取待删除数据的数据块特征码;第三通讯模块对数据块特征码和数据删除请求进行封装,并发送到第四通讯模块;
第四通讯模块接收并解析已封装的数据块特征码和数据删除请求;第四处理模块接收解析出的数据块特征码和数据删除请求之后,数据块特征码检索模块以每个数据块特征码作为关键字,在数据块特征码字典中进行数据块特征码检索;
数据块特征码维护模块判断数据块特征码与使用数据块特征码的当前用户是否存在链接,当数据块特征码与当前用户仍存在链接时,用户管理模块断开数据块和使用该数据块的相应用户之间的链接;
之后,所述数据块特征码维护模块再判断数据块特征码是否仍与使用该数据块特征码的其他用户存在链接;
当数据块特征码与其他用户均不存在链接时,所述数据块特征码字典记录当前时刻为所述数据块特征码的第二标记时间戳。
17.根据权利要求16所述的云存储方法,其特征在于,所述数据块特征码字典记录第二标记时间戳之后;
所述云存储服务器的后台定时启动清理业务,检测数据块特征码字典,当数据块特征码没有与任何用户存在链接时,判断当前检测时间与第二标记时间戳的时间差是否大于第二时间阈值,当时间差大于第二时间阈值时,数据块特征码字典删除所述数据块特征码,所述存储模块删除数据块特征码对应的数据块。
18.根据权利要求14所述的云存储方法,其特征在于,所述业务请求为数据共享保存请求;共享保存数据包括:
第三处理模块产生数据共享保存请求;数据切分模块将数据切分成数据块,数据块特征码提取模块提取待共享保存数据的数据块特征码;第三通讯模块对所述数据块特征码和数据共享保存请求进行封装,并发送到第四通讯模块;
所述第四通讯模块接收并解析已封装的数据块特征码和数据共享保存请求;第四处理模块接收解析出的数据块特征码和数据共享保存请求之后,数据块特征码检索模块以每个数据块特征码作为关键字,在数据块特征码字典中进行数据块特征码检索;
依据检索出的数据块特征码,用户管理模块建立用户与数据块之间的链接。
19.根据权利要求14所述的云存储方法,其特征在于,所述业务请求为数据更新请求;数据更新包括:
第三处理模块产生数据更新请求;第三通讯模块对数据更新请求进行封装,发送到第四通讯模块;第四通讯模块接收并解释数据更新请求,所述第四处理模块接收到数据更新请求后,所述用户管理模块读取原数据块特征码集合和原数据块集合,第四通讯模块将原数据块集合、原数据块特征码集合进行封装,并发送到第三通讯模块;第三通讯模块接收并解析原数据块集合、原数据块特征码集合;
所述数据切分模块对用户端所有数据进行切分形成数据块,所述数据块特征提取模块提取所有数据块的数据块特征码;将切分得到的所有数据块与原数据块特征码集合进行比对,得到需要更新的数据块;将提取到的数据块特征码与原数据块特征码集合进行比对,得到需要更新的数据块特征码;
依据HTTP协议,所述第三通讯模块对需要更新的数据块、需要更新的数据块特征码和数据更新请求进行封装,并发送至所述第四通讯模块;
第四处理模块接收解析出的所有数据块特征码和数据更新请求之后,存储模块存储需要更新的数据块,数据块特征码维护模块添加需要更新的数据块特征码到数据块特征码字典;
数据块特征码维护模块建立需要更新的数据块与需要更新的数据块特征码之间的链接;用户管理模块建立需要更新的数据块与使用该数据块的用户之间的链接。
20.根据权利要求14所述的云存储方法,其特征在于,所述业务请求为数据同步请求;数据同步包括:
第三处理模块产生数据同步请求;数据切分模块对所有数据进行切分,形成数据块并保存;数据块特征码提取模块提取所有数据块的数据块特征码并保存;第三通讯模块对所有数据块特征码和数据同步请求进行封装,并发送到第四通讯模块;
所述第四通讯模块接收并解析已封装的所有数据块特征码和数据同步请求;第四处理模块接收解析出的所有数据块特征码和数据同步请求之后,数据块特征码检索模块将用户端发来的所有数据块特征码与保存在数据块特征码字典中的所有数据块特征码进行对比;
当数据块特征码检索模块对比出数据块特征码字典中部分数据块特征码没有出现在所述用户端发来的所有数据块特征码中时,存储模块将生成待同步数据块列表,数据块特征码维护模块将生成待同步数据块特征码列表并发送至所述用户端;依据待同步数据块列表,数据切分模块添加待同步数据块;依据待同步数据块特征码列表,数据块特征码提取模块添加待同步数据块特征码。
21.一种用户端,其特征在于,该用户端包括:第三处理模块、数据切分模块、数据块特征码提取模块、更新检测模块和第三通讯模块;其中,
所述第三处理模块,用于产生业务请求;
所述数据切分模块,用于将数据切分成数据块,并保存数据块;
所述数据块特征码提取模块,用于提取并保存数据块特征码;
所述更新检测模块,用于检测用户端数据是否发生更新;
所述第三通讯模块,用于封装并发送数据块特征码和业务请求。
22.一种云存储服务器,其特征在于,该云存储服务器包括:第四通讯模块、第四处理模块、数据块特征码维护模块、数据块特征码字典、数据块特征码检索模块、存储模块和用户管理模块;其中,
所述第四通讯模块,用于接收并解析出业务请求和数据块特征码;
所述第四处理模块:用于接收所述第四通讯模块解析出的业务请求;
所述数据块特征码维护模块,用于更新所述数据块特征码字典,定期检测所述数据块特征码字典,并删除数据块失效特征码、维护数据块与数据块特征码之间的链接;
所述数据块特征码字典,用于收集并保存所有数据块特征码;
所述数据块特征码检索模块,用于以数据块特征码作为关键字,检索所述数据块特征码字典;
所述存储模块,用于存储用户的数据块;
所述用户管理模块,用于维护数据块与使用该数据块的用户之间的链接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210483080.1A CN103841144A (zh) | 2012-11-23 | 2012-11-23 | 云存储系统、方法、用户端及云存储服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210483080.1A CN103841144A (zh) | 2012-11-23 | 2012-11-23 | 云存储系统、方法、用户端及云存储服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103841144A true CN103841144A (zh) | 2014-06-04 |
Family
ID=50804273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210483080.1A Pending CN103841144A (zh) | 2012-11-23 | 2012-11-23 | 云存储系统、方法、用户端及云存储服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841144A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394222A (zh) * | 2014-11-26 | 2015-03-04 | 盐城师范学院 | 一种云存储系统及方法 |
CN104883404A (zh) * | 2015-06-04 | 2015-09-02 | 上海斐讯数据通信技术有限公司 | 基于网络的文件云同步方法 |
CN104993951A (zh) * | 2015-06-12 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 一种网络设备信息传送方法 |
CN105635324A (zh) * | 2016-03-17 | 2016-06-01 | 新浪网技术(中国)有限公司 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
WO2020233082A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据文件上传方法、系统、存储介质和服务器 |
CN113535091A (zh) * | 2021-07-20 | 2021-10-22 | 国网新疆电力有限公司信息通信公司 | 一种大数据网络云储存防护系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581100A (zh) * | 2003-07-31 | 2005-02-16 | 华为技术有限公司 | 一种用于网络处理器的数据老化方法 |
CN101916302A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
CN102281320A (zh) * | 2011-04-25 | 2011-12-14 | 程旭 | 控制云存储中数据冗余的方法及装置 |
US20120016845A1 (en) * | 2010-07-16 | 2012-01-19 | Twinstrata, Inc | System and method for data deduplication for disk storage subsystems |
CN102752402A (zh) * | 2012-07-20 | 2012-10-24 | 广东威创视讯科技股份有限公司 | 一种云存储方法及系统 |
-
2012
- 2012-11-23 CN CN201210483080.1A patent/CN103841144A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581100A (zh) * | 2003-07-31 | 2005-02-16 | 华为技术有限公司 | 一种用于网络处理器的数据老化方法 |
US20120016845A1 (en) * | 2010-07-16 | 2012-01-19 | Twinstrata, Inc | System and method for data deduplication for disk storage subsystems |
CN101916302A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 基于哈希表的三维空间数据自适应缓存管理方法及系统 |
CN102281320A (zh) * | 2011-04-25 | 2011-12-14 | 程旭 | 控制云存储中数据冗余的方法及装置 |
CN102752402A (zh) * | 2012-07-20 | 2012-10-24 | 广东威创视讯科技股份有限公司 | 一种云存储方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394222A (zh) * | 2014-11-26 | 2015-03-04 | 盐城师范学院 | 一种云存储系统及方法 |
CN104883404A (zh) * | 2015-06-04 | 2015-09-02 | 上海斐讯数据通信技术有限公司 | 基于网络的文件云同步方法 |
WO2016192327A1 (zh) * | 2015-06-04 | 2016-12-08 | 上海斐讯数据通信技术有限公司 | 基于网络的文件云同步方法 |
CN104883404B (zh) * | 2015-06-04 | 2017-05-24 | 上海斐讯数据通信技术有限公司 | 基于网络的文件云同步方法 |
CN104993951A (zh) * | 2015-06-12 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 一种网络设备信息传送方法 |
CN104993951B (zh) * | 2015-06-12 | 2018-02-06 | 上海斐讯数据通信技术有限公司 | 一种网络设备信息传送方法 |
CN105635324A (zh) * | 2016-03-17 | 2016-06-01 | 新浪网技术(中国)有限公司 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
WO2020233082A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据文件上传方法、系统、存储介质和服务器 |
CN113535091A (zh) * | 2021-07-20 | 2021-10-22 | 国网新疆电力有限公司信息通信公司 | 一种大数据网络云储存防护系统及方法 |
CN113535091B (zh) * | 2021-07-20 | 2022-10-25 | 国网新疆电力有限公司信息通信公司 | 一种大数据网络云储存防护系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250270B (zh) | 一种云计算平台下的数据备份方法 | |
CN103095843B (zh) | 一种基于版本矢量的数据备份方法及客户端 | |
CN106156359B (zh) | 一种云计算平台下的数据同步更新方法 | |
CN103841144A (zh) | 云存储系统、方法、用户端及云存储服务器 | |
US20190222603A1 (en) | Method and apparatus for network forensics compression and storage | |
CN104221003B (zh) | 利用异步数据词典在多租户共享的基础设施中的基于流的重复数据删除 | |
US8874520B2 (en) | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance | |
CN102684827B (zh) | 数据处理方法及数据处理设备 | |
CN103118104B (zh) | 一种基于版本矢量的数据还原方法及服务器 | |
CN105812351A (zh) | 实现会话共享的方法和系统 | |
CN102882985A (zh) | 基于云存储的文件共享方法 | |
CN101158954B (zh) | 一种在计算机存储中识别重复数据的方法 | |
CN103024014A (zh) | 通过消息队列的海量数据分发处理的方法和系统 | |
CN104348859B (zh) | 文件同步方法、装置、服务器、终端及系统 | |
CN102067148A (zh) | 用于确定文件分类的方法及系统 | |
CN101291342A (zh) | 一种分布式体系中的数据同步方法及系统 | |
US10339124B2 (en) | Data fingerprint strengthening | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN106648445B (zh) | 用于网络爬虫的数据存储方法及装置 | |
CN104618444A (zh) | 一种基于反向代理服务器处理请求的方法和装置 | |
CN105677646A (zh) | 字库生成方法、字库生成系统和服务器 | |
US20130013570A1 (en) | File storage apparatus, data storing method, and data storing program | |
CN106790334A (zh) | 一种页面数据传输方法及系统 | |
CN113900810A (zh) | 分布式图处理方法、系统及存储介质 | |
CN103823807A (zh) | 一种去除重复数据的方法、装置及系统 |
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: 20140604 |