- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
云存储项目架构设计 核心概念 Bucket Bucket为全局唯一的字符串标识(必须满足url的要求),用于唯一标识不同的数据集。 跨Bucket之间的Object在逻辑上完全独立,相互没有内部逻辑关联。 Bucket下面不能嵌套其他的Bucket。 类似于于linux上用户目录的概念。 同一用户可以创建多个不同的Bucket,一个Bucket的创建者只能是一个,拥有对于该Bucket的所有控制权限。 涉及到的主要操作:put/delete bucket 以及 put/get bucket ACL。 Object 一个Object只能属于一个Bucket,且一定属于某一个Bucket。 一个Object在逻辑上由三部分组成: Url, Data, Meta。Url表示该Object在其所属Bucket内的路径;Data表示该object的内容主体;Meta信息是附在该object上的若干附加属性集合,一个object的实际Data信息跟meta信息是分开存储的,Data数据存储位置的索引记录在meta信息中。 涉及到的主要 操作:put/get/delete/head object 以及 put/get object ACL。 核心概念 Superfile Superfile 也可看做是 object,只不过一个 Superfile 是由多个普通子 object 组成的而已。 Superfile 文件的 meta 信息中存储的是所有子文件的 meta 信息存储位置的索引。 涉及到的操作跟普通object一样。 ACL ACL 是指对 object 和 bucket 的访问权限控制,描述什么用户(User)在什么情况下(Condition)对哪个资源(Resource)可以执行什么操作(Action)。 User:系统用户 Condition:设置的一些限制策略,比如时限、IP等等 Resource:object、bucket、acl-policy Action:read/write/delete以及control 基本模块 Lighttpd Lighttpd 模块是系统跟用户交互的接口,其主要作用是将请求转发给相应的模块,以及下载文件和返回结果给用户。 CommitUI CommitUI 模块负责创建、删除 object (包括superfile)业务的处理。 List-server List-server 模块负责处理 bucket 相关的请求,包括创建、删除、获取列表。 ACL ACL 模块的作用是对用户请求进行校验,根据 Policy 返回校验结果,也负责设置和获取 Policy。 Platform Platform 主要是起一个辅助功能的作用,给用户提供了一个可交互界面实现创建、删除 bucket 和浏览 bucket 列表的功能,以及申请、删除 AK/SK 的功能。 数据存储 系统构建在 mola 之上,数据实际都是存储在 mola 中,包括 Policy、meta、data都是。 同时 Platform 和 List-server 也共用了一个 MySQL 数据库存取bucket、AK/SK信息。 涉及到的 mola 中的主要几个表: 数据存储 mola 中表 “metaTable”存储 superfile 的 meta 信息时,value 字段的内容跟存储普通 object 的 meta 信息时有区别,superfile 的 meta 数据的 value 字段存储的是其子文件的 meta 数据的索引信息: 系统架构图 Platform 上申请/删除 AK/SK 操作流程 List-server 处理 bucket 相关请求流程 Put object 操作流程 Put superfile 操作流程 如果用户提交的 object 是 superfile,则用户需先提交完毕该 superfile 的所有子文件(跟提交普通 object 一样),然后用户提交该 superfile 文件的 meta 数据。 Get object 操作流程 Get superfile 操作流程 如果所请求的 object 是一个 superfile Delete object 操作流程 删除操作只是把该 object 在 mola 中表 policyTable 中的 policy 内容中添加一个“已删”标记,是为假删。后续访问该 object 时,发现该标记则返回“不存在”。 Put/Get ACL 操作 用户的请求 querystring 中标明 acl=1,acl-policy 数据可放在acl数据文件中上传该文件即可,也可直接放在请求的 http 协议 body 中。 Thanks! * *
原创力文档


文档评论(0)