文档章节

RGW S3 ACL解析

linuxhunter
 linuxhunter
发布于 2016/04/14 10:57
字数 225
阅读 223
收藏 0

RGW ACL主要类关系图如下图所示:

RGW ACL处理类关系图如下图所示:

RGW ACL主要处理流程详细说明如下。

一、PUT ACL。

RGWPutACL::execute()

|__从HTTP请求数据流中解析出RGWAccessControlPolicy_S3对象

|__RGWAccessControlPolicy_S3::rebuild()

     |__rgw_get_user_info_by_uid()          得到指定的用户信息

     |__创建ACLOwner对象且设置ACLOwner的id和name

     |__遍历grant_map列表生成新的ACLGrant对象

     |__将新生成的ACLGrant对象插入到RGWAccessControlList::grant_map中

|__根据bucket和object信息生成rgw_obj对象

|__对于设置对象的ACL则将对象的ACL信息写入到对象属性的RGW_ATTR_ACL中,对于设置bucket的ACL则将ACL信息写入到Bucket的metadata中

二、GET ACL。

RGWGetACLs::execute()

|__判断所需是bucket ACL还是object ACL

|__生成RGWAccessControlPolicy_S3对象

|__RGWAccessControlPolicy_S3::to_xml()          将RGWAccessControlPolicy_S3对象xml化


© 著作权归作者所有

上一篇: RGW S3 CORS解析
下一篇: RGW S3 Multipart解析
linuxhunter
粉丝 73
博文 145
码字总数 93559
作品 0
沈阳
技术主管
私信 提问
RadosGW框架分析

RadosGW分析。 一、RadosGW的main()函数解析。 RadosGW的main()函数位于rgwmain.cc中,该函数是RadosGW的入口函数。这里主要解析和RadosGW相关的内容,尽量省略WebServer的内容。 main()函数...

linuxhunter
2016/04/07
919
1
rgw object read and write

一、Get Object。 1、读取Object的主要处理流程。 RGWGetObj::execute() |创建RGWGetObjCB类实例,其中handledata()函数为回调函数,该函数会调用RGWGetObj::getdatacb()函数,而该函数最终会...

linuxhunter
2016/04/12
942
4
RGW S3 Multipart解析

S3分段上传技术主要应用在大文件的数据上传上,通常在S3客户端会对上传的大文件做一次分片操作。在RGW内部还会对S3客户端发送过来的数据再进行一次分片处理,RGW默认分片大小是4MB。下面就M...

linuxhunter
2016/04/13
689
1
RGW S3 Authorize解析

截止到目前为止,RGW S3的认证部分支持AWS v4认证、AWS v2认证以及匿名用户认证。这三种认证的总入口位于rgwprocess.cc::processrequest()函数,该函数中处理认证部分的代码如下: rgwproce...

linuxhunter
2016/04/18
506
0
RGW S3 CORS解析

一、RGW S3 CORS核心类关系图。 二、RGW S3 CORS处理类关系图。 三、RGW S3 CORS操作解析。 1、PUT CORS操作。 RGWPutCORS::execute() |RGWPutCORSObjStoreS3::getparams() |从HTTP请求数据流...

linuxhunter
2016/04/14
344
0

没有更多内容

加载失败,请刷新页面

加载更多

处理CSV文件中的逗号

我正在寻找有关如何处理正在创建的csv文件的建议,然后由我们的客户上传,并且该值可能带有逗号(例如公司名称)。 我们正在研究的一些想法是:带引号的标识符(值“,”值“,”等)或使用|...

javail
31分钟前
21
0
如何克隆一个Date对象?

将Date变量分配给另一个变量会将引用复制到同一实例。 这意味着更改一个将更改另一个。 如何实际克隆或复制Date实例? #1楼 简化版: Date.prototype.clone = function () { return new ...

技术盛宴
今天
58
0
计算一个数的数位之和

计算一个数的数位之和 例如:128 :1+2+8 = 11 public int numSum(int num) { int sum = 0; do { sum += num % 10; } while ((num = num / 10) > 0); return sum;......

SongAlone
今天
67
0
为什么图片反复压缩后普遍会变绿,而不是其他颜色?

作者:Lion Yang 链接:https://www.zhihu.com/question/29355920/answer/119088684 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 业余版概要:安卓的...

shzwork
今天
47
0
每天AC系列(二):最接近的三数之和

1 题目 leetcode第16题,给定一个数组与一个目标数,找出数组中其中的三个数,这三个数的和要与目标数最接近。 2 暴力 按惯例先来一次O(n3)的暴力: int temp = nums[0]+nums[1]+nums[2];fo...

Blueeeeeee
今天
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部