RGW S3 Multipart解析
S3分段上传技术主要应用在大文件的数据上传上,通常在S3客户端会对上传的大文件做一次分片操作。在RGW内部还会对S3客户端发送过来的数据再进行一次分片处理,RGW默认分片大小是4MB。下面就Multipart不同部分进行详细解析。 1、初始化Multipart。 初始化Multipart使用的是HTTP POST操作,在RGW中使用RGWInitMultipart_ObjStore_S3类处理。由于RGWInitMultipart_ObjStore_S3类继承自RGWInitMultipart_ObjStore,而RGWInitMultipart_ObjStore类继承自RGWInitMultipart,而RGWInitMultipart类继承自RGWOp类。因此处理Mulipart初始化的操作主要集中在RGWInitMultipart::execute()函数中。下面对该函数的处理流程进行详细解析。 RGWInitMultipart::execute() |__RGWInitMultipart_ObjStore_S3::get_params() 从HTTP请求中得到RGWAccessControlPolicy_S3类实例 |__将RGWAccessControlPolicy_S3放入到属性列表中且属性key=RGW_ATTR_ACL |__rgw_get_request