对象管理方法和对象管理系统的制作方法
【专利摘要】在本公开实施例中,提供了一种对象管理方法,包括:建立从客户端到云存储端的通信连接;接收所述客户端对第一对象的下载请求;以第一次下载请求的接收时间为起始时间,计算在时间段T1内所述第一对象的请求数量;如果所述请求数量超过阈值N,将所述第一对象的访问权限设置为私有;其中,所述云存储端存储有多个对象,所述第一对象为所述云存储端存储的任意对象,时间段T1和阈值N为存储在数据库中的配置信息。当对象的下载次数过多时,通过将对象权限设置为私有以阻止对该对象的下载。该方法有利于防范黑客利用泄露的下载地址攻击私有云存储集群,节省公网带宽,降低成本。
【专利说明】
对象管理方法和对象管理系统
技术领域
[0001 ]本公开涉及云存储领域,具体涉及对象管理方法和对象管理系统。
【背景技术】
[0002] 对象存储在互联网的大潮中受到了广发关注,并得到了迅速的发展。对象存储与 文件存储不同,对象不以目录分层的结构进行组织。每个对象都位于被称为存储池的扁平 的空间的相同层级,每一级的每个元素在存储系统中都有唯一的标识,用户通过这个标识 来访问容器或者对象。采用扁平的数据组织结构抛弃了嵌套的文件夹,避免维护庞大的目 录树。在大数据和互联网时代,存储的文件/对象超过上百万个,单位时间内的访问次数和 并发访问量也达到了前所未有的量级,在这种情况下,目录树会给存储系统带来很大的开 销和诸多问题,成为系统的瓶颈。另外一个让对象存储焕发生命力的因素是,对象存储不再 提供POSIX兼容的接口(如open,close,read,write等),而是可以非常方便地通过HTTP Restful API接口和对象进行交互,通过PUT和GET进行上传下载,通过DELETE进行删除。
[0003] 对象存储可以为用户提供视频、音乐等较大文件的存储,也可以提供日志的服务, 另外,存储服务取得更大发展的更大因素是取得了移动互联网的青睐,在移动端的APP中, 对象存储简单的HTTP接口简化了开发者的开发流程,并且还可以为用户提供海量的存储空 间。
[0004] 在某些场景中,比如⑶N(Content Delivery Network,内容分发网络)分发场景 中,为了简化流程,需要将对象设置成public-read权限,以便处于公网的CDN节点能够下载 到这个对象。但是如果这个public-read权限的对象的下载地址如果不小心泄露给攻击者, 那么攻击者就可以通过大量的肉鸡疯狂下载一个文件,当这个文件较大时,对象存储集群 将不堪重负,另外大量公网出口带宽被浪费,也造成了经济损失。此时可能传统做法是封用 户IP,但是攻击者通常会伪造 ip来隐藏自己的身份,因此这种策略并不奏效。
【发明内容】
[0005] 有鉴于此,本公开提供一种对象管理方法和管理系统,以至少解决上述问题之一。
[0006] 根据本公开的第一方面,本公开提供一种对象管理方法,包括:建立从客户端到云 存储端的通信连接;接收所述客户端对第一对象的下载请求;以第一次下载请求的接收时 间为起始时间,计算在时间段Tl内所述第一对象的请求数量;如果所述请求数量超过阈值 N,将所述第一对象的访问权限设置为私有;其中,所述云存储端存储有多个对象,所述第一 对象为所述云存储端存储的任意对象,时间段Tl和阈值N为存储在数据库中的配置信息。
[0007] 优选地,还包括:在所述将所述第一对象的访问权限设置为不可读的T2时间段后, 将所述第一对象的访问权限设置为任意可读,T2为存储在数据库中的配置信息。
[0008] 优选地,还包括:接收所述第一对象的上载请求;将所述第一对象存储到所述云存 储端;以及将所述上载请求中的配置信息存储到数据库中。
[0009] 优选地,时间段Tl、T2和阈值N是可配置的。
[0010] 优选地,还包括:如果所述请求数量超过阈值N,将所述第一对象加入到黑名单中。
[0011] 优选地,所述第一对象的初始权限为任意可读。
[0012] 根据本公开的第二方面,提供一种对象管理系统,包括多个客户端和云存储端,所 述客户端包括:和所述云存储端建立通信连接;提交第一对象的下载请求;以及接受所述云 存储端返回结果;
[0013] 所述云存储端包括:建立和所述客户端的通信连接;接收所述客户端对所述第一 对象的下载请求;以第一次下载请求的接收时间为起始时间,计算在时间段Tl内所述第一 对象的请求数量;如果所述请求数量超过阈值N,将所述第一对象的访问权限设置为私有;
[0014] 其中,所述云存储端存储有多个对象,所述第一对象为所述云存储端存储的任意 对象,时间段Tl和阈值N为存储在数据库中的配置信息。
[0015] 优选地,还包括:在所述将所述第一对象的访问权限设置为不可读的T2时间段后, 将所述第一对象的访问权限设置为任意可读,T2为存储在数据库中的配置信息。
[0016] 优选地,还包括:接收所述第一对象的上载请求;将所述第一对象存储到所述云存 储端;以及将所述上载请求中的配置信息存储到数据库中。
[0017] 优选地,还包括:如果所述请求数量超过阈值N,将所述第一对象加入到黑名单中。 [0018]在本公开实施例中,提供了一种对象管理方法,包括:建立从客户端到云存储端的 通信连接;接收所述客户端对第一对象的下载请求;以第一次下载请求的接收时间为起始 时间,计算在时间段Tl内所述第一对象的请求数量;如果所述请求数量超过阈值N,将所述 第一对象的访问权限设置为私有;其中,所述云存储端存储有多个对象,所述第一对象为所 述云存储端存储的任意对象,时间段Tl和阈值N为存储在数据库中的配置信息。当对象的下 载次数过多时,通过将对象权限设置为私有以阻止对该对象的下载。该方法有利于防范黑 客利用泄露的下载地址攻击私有云存储集群,节省公网带宽,降低成本。同时提供一种对象 管理系统。
【附图说明】
[0019] 通过参照以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和 优点将更为清楚,在附图中:
[0020] 图1是根据本公开实施例的对象管理系统的示意图;
[0021 ]图2是根据本公开实施例的对象管理方法的流程图;
[0022]图3是根据本公开实施例的客户端和云存储端建立通信连接的示意图;
[0023]图4是根据本公开另一实施例的对象管理方法的流程图。
【具体实施方式】
[0024] 以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下 文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有 这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过 程、流程没有详细叙述。另外附图不一定是按比例绘制的。
[0025] 在本公开的描述中,需要理解的是,术语"第一"、"第二"等仅用于描述目的,而不 能理解为指示或暗示相对重要性。
[0026] 图1是根据本公开实施例的对象管理系统的示意图。所述对象系统包括客户端100 和云存储端101。这里,客户端可以是一个手机APP,或视频系统、电商系统的前端或后端程 序。云存储端则可以包括软硬件结合的云服务系统。
[0027] 这里,可以把云存储端的存储区域看作一个网络SAN(Storage Area Network),即 一个集中式管理的高速存储网络,由多供应商存储系统、存储管理软件、应用程序服务器和 网络硬件组成。云存储端使用存储空间(bucket)和对象对数据进行存储。可以将bucket理 解为容器,每个对象都存放在一个容器中,如图1中的102所示,云存储端将存储区域分为若 干个bucket (大小相等),每个bucket中存放着多个对象。bucket使用存储空间标识符作为 唯一标识,由于对象的大小不同,所以即使相同容量的存储空间存放的对象个数也不同。 [0028]客户端100和云存储端101建立通信连接后,通过该通信连接发送一个对象的下载 请求,云存储端接收到该请求后,通过线程计算针对该对象的请求数量,以第一次下载请求 的接收时间为起始时间,计算在时间段Tl内该对象的请求数,如果请求数量超过阈值N,将 第一对象的访问权限设置为私有,其中,时间段Tl和阈值N为存储在数据库中的配置信息。 [0029]在本实施例中,通过对象管理系统的权限控制有利于防范黑客利用泄露的下载地 址攻击私有云存储集群。
[0030]图2是根据本公开实施例的对象管理方法的流程图。所述对象管理方法包括步骤 201-205。
[0031]在步骤201中,建立从客户端到云存储端的通信连接。图3示出了一个手机APP和云 存储端建立安全通信连接的过程。标记30为客户端,标记31为权限管理服务器,通过客户端 访问权限管理服务器。当需要进行云端存储时,客户端通过步骤301向权限管理服务器发送 一个云端授权请求,权限管理服务器接收后,向云存储端转发,云存储端进行校验后,返回 临时授权ID或访问令牌(Access token),权限管理服务器接收到该授权ID或访问令牌,返 回给客户端。客户端将该授权ID或访问令牌缓存在本地,并通过该授权ID或访问令牌和云 存储端进行通信连接。为了保证授权ID或访问令牌不被滥用或窃取,该类授权ID或访问令 牌一般都设有时间限制,过了预定时间自动失效。
[0032]在步骤202中,接收客户端对第一对象的下载请求。
[0033]第一对象为云存储端存储的任意对象,这里,"第一"只是为了方便描述。
[0034]在步骤203中,以第一次下载请求的接收时间为起始时间,计算在时间段Tl内第一 对象的请求数量。
[0035] 在步骤204中,请求数量〉N。如果请求数量大于N,执行步骤205。
[0036] 步骤203和204中T和N是可修改的配置信息,可以存储在数据库中。另外,如果通过 CDN提供服务,则阈值N应设置为大于CDN节点个数的数值,否则有可能来自CDN节点的合法 请求拒绝掉。
[0037]在步骤205中,将第一对象的访问权限设置为私有。
[0038] 在本公开中对象权限的定义可以参考表格1。将对象权限设置为私有(private)意 味着该对象不再对公众开放,公众不可读。
[0039] 表格 1
[0042]在一个优选的实施例中,通过定时器来实现上述对象管理方法。当某一对象在t时 刻有了第一次下载之后,即启动一个Tl时间长度的定时器,在这个定时器超时之前,如果下 载数量超过用户设置的N,则后台直接设置这个对象为私有(private)权限,并启动另一后 台定时器,在T2时刻将该对象重新设置为任意可读(public-read)权限。如果前面提到的在 Tl时间段内用户下载没有达到N,则定时器超时,此时不执行权限控制策略,下一次有下载 时在重复启用定时器。其中,Tl,T2和N都是可以修改的配置信息,可以将其存储到数据库中 (关系型数据库或内存数据库)。客户端也可以删除这些配置信息。
[0043]图4是根据本公开另一实施例的对象管理方法的流程图,包括步骤401-407。其中 步骤401和图2中的步骤201相同,步骤405-408和图2中的步骤202-205相同,这里不再详细 描述。
[0044] 在步骤402中,接收第一对象的上载请求。
[0045] 在步骤403中,将第一对象存储到云存储端。
[0046] 在步骤404中,将上载请求中的配置信息存储到数据库中。
[0047]步骤402-404将接收到第一对象将其存储到存储空间(bucket)中,并且,从上载请 求中获取到针对该对象的配置信息(例如,上述TI,N,T2的数值),并将这些配置信息存储到 数据库中,用于判断下载数量是否超限。
[0048] 本公开提供的对象管理方法,将某个对象在某个时间段内的下载数量和阈值比 较,如果下载数量超过阈值,则认为当前对象的下载次数过多,通过将对象权限设置为私有 以阻止对该对象的下载。该方法有利于防范黑客利用泄露的下载地址攻击私有云存储集 群,节省公网带宽,降低成本。同时,将下载次数超过阈值的对象存储到黑名单中,供其他部 分进行分析。
[0049] 附图中的流程图、框图图示了本公开实施例的系统、方法、装置的可能的体系框 架、功能和操作,流程图和框图上的方框可以代表一个、程序段或仅仅是一段代码,所述、程 序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功 能的可执行指令可以重新组合,从而生成新的和程序段。因此附图的方框以及方框顺序只 是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
[0050] 系统的各个或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C+ +/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本公开实施例 的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合, 从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤 顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执 行。
[0051] 根据本公开的系统和方法可以部署在单个或多个服务器上。例如,可以将不同的 分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同 的功能单元、或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过 Internet连接的多个PC机、PC服务器、刀片机、超级计算机等。
[0052]以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员 而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同 替换、改进等,均应包含在本公开的保护范围之内。
【主权项】
1. 一种对象管理方法,包括: 建立从客户端到云存储端的通信连接; 接收所述客户端对第一对象的下载请求; 以第一次下载请求的接收时间为起始时间,计算在时间段Tl内所述第一对象的请求数 量; 如果所述请求数量超过阈值N,将所述第一对象的访问权限设置为私有; 其中,所述云存储端存储有多个对象,所述第一对象为所述云存储端存储的任意对象, 时间段Tl和阈值N为存储在数据库中的配置信息。2. 根据权利要求1所述的对象管理方法,还包括:在所述将所述第一对象的访问权限设 置为不可读的T2时间段后,将所述第一对象的访问权限设置为任意可读,T2为存储在数据 库中的配置信息。3. 根据要求要求2所述的对象管理方法,还包括:接收所述第一对象的上载请求;将所 述第一对象存储到所述云存储端;以及将所述上载请求中的配置信息存储到数据库中。4. 根据权利要求3所述的对象管理方法,其中,时间段Tl、T2和阈值N是可配置的。5. 根据权利要求1所述的对象管理方法,还包括:如果所述请求数量超过阈值N,将所述 第一对象加入到黑名单中。6. 根据权利要求1所述的对象管理方法,其中,所述第一对象的初始权限为任意可读。7. -种对象管理系统,包括多个客户端和云存储端, 所述客户端包括: 和所述云存储端建立通信连接; 提交第一对象的下载请求;以及 接受所述云存储端返回结果; 所述Ζ5Γ存储包括: 建立和所述客户端的通信连接; 接收所述客户端对所述第一对象的下载请求; 以第一次下载请求的接收时间为起始时间,计算在时间段Tl内所述第一对象的请求数 量; 如果所述请求数量超过阈值N,将所述第一对象的访问权限设置为私有; 其中,所述云存储端存储有多个对象,所述第一对象为所述云存储端存储的任意对象, 时间段Tl和阈值N为存储在数据库中的配置信息。8. 根据权利要求7所述的对象管理系统,还包括:在所述将所述第一对象的访问权限设 置为不可读的T2时间段后,将所述第一对象的访问权限设置为任意可读,T2为存储在数据 库中的配置信息。9. 根据要求要求8所述的对象管理系统,还包括:接收所述第一对象的上载请求;将所 述第一对象存储到所述云存储端;以及将所述上载请求中的配置信息存储到数据库中。10. 根据权利要求1所述的对象管理方法,还包括:如果所述请求数量超过阈值N,将所 述第一对象加入到黑名单中。
【文档编号】H04L29/08GK105915524SQ201610305908
【公开日】2016年8月31日
【申请日】2016年5月10日
【发明人】吴兴义
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司