@@ -3425,23 +3425,21 @@ def update_object_meta(self, Bucket, Key, **kwargs):
34253425 )
34263426 return response
34273427
3428- def put_bucket_encryption (self , Bucket , SSEAlgorithm = None , ** kwargs ):
3428+ def put_bucket_encryption (self , Bucket , ServerSideEncryptionConfiguration = {} , ** kwargs ):
34293429 """设置执行存储桶下的默认加密配置
34303430
34313431 :param Bucket(string): 存储桶名称.
34323432 :param SSEAlgorithm(string): 要使用的服务端加密算法
34333433 :param kwargs(dict): 设置下载的headers.
34343434 :return(dict): 设置成功返回的结果.
34353435 """
3436- if SSEAlgorithm is None :
3437- raise CosClientError ('SSEAlgorithm is None and must be set!' )
3438-
3439- root = xml .etree .ElementTree .Element ("ServerSideEncryptionConfiguration" )
3440- rule_node = xml .etree .ElementTree .SubElement (root , "Rule" )
3441- apply_node = xml .etree .ElementTree .SubElement (rule_node , "ApplySideEncryptionConfiguration" )
3442- xml .etree .ElementTree .SubElement (apply_node , "SSEAlgorithm" ).text = to_str (SSEAlgorithm )
3443- body = xml .etree .ElementTree .tostring (root , encoding = 'utf-8' )
3444-
3436+ # 类型为list的标签
3437+ lst = [
3438+ '<Rule>' ,
3439+ '</Rule>'
3440+ ]
3441+ xml_config = format_xml (data = ServerSideEncryptionConfiguration , root = 'ServerSideEncryptionConfiguration' , lst = lst )
3442+ logger .info ('xml_config: {0}' .format (xml_config ))
34453443 headers = mapped (kwargs )
34463444 params = {'encryption' : '' }
34473445 url = self ._conf .uri (bucket = Bucket )
@@ -3453,12 +3451,11 @@ def put_bucket_encryption(self, Bucket, SSEAlgorithm=None, **kwargs):
34533451 url = url ,
34543452 bucket = Bucket ,
34553453 auth = CosS3Auth (self ._conf , params = params ),
3456- data = to_bytes ( body ) ,
3454+ data = xml_config ,
34573455 headers = headers ,
34583456 params = params )
34593457
3460- response = dict (** rt .headers )
3461- return response
3458+ return None
34623459
34633460 def get_bucket_encryption (self , Bucket , ** kwargs ):
34643461 """获取存储桶下的默认加密配置
@@ -3480,15 +3477,11 @@ def get_bucket_encryption(self, Bucket, **kwargs):
34803477 auth = CosS3Auth (self ._conf , params = params ),
34813478 headers = headers ,
34823479 params = params )
3483- data = xml .etree .ElementTree .fromstring (rt .content )
3484- sse_algorithm = None
3485- rule = data .find ('Rule' )
3486- if rule is not None :
3487- apply = rule .find ('ApplyServerSideEncryptionByDefault' )
3488- if apply is not None :
3489- sse_algorithm = to_str (apply .find ('SSEAlgorithm' ).text )
34903480
3491- return sse_algorithm
3481+ data = xml_to_dict (rt .content )
3482+ format_dict (data , ['Rule' ])
3483+ logger .info ('data: {0}' .format (data ))
3484+ return data
34923485
34933486 def delete_bucket_encryption (self , Bucket , ** kwargs ):
34943487 """用于删除指定存储桶下的默认加密配置
@@ -3500,7 +3493,7 @@ def delete_bucket_encryption(self, Bucket, **kwargs):
35003493 headers = mapped (kwargs )
35013494 params = {'encryption' : '' }
35023495 url = self ._conf .uri (bucket = Bucket )
3503- logger .info ("put bucket encryption, url=:{url} ,headers=:{headers}" .format (
3496+ logger .info ("delete bucket encryption, url=:{url} ,headers=:{headers}" .format (
35043497 url = url ,
35053498 headers = headers ))
35063499 rt = self .send_request (
@@ -3511,8 +3504,7 @@ def delete_bucket_encryption(self, Bucket, **kwargs):
35113504 headers = headers ,
35123505 params = params )
35133506
3514- response = dict (** rt .headers )
3515- return response
3507+ return None
35163508
35173509
35183510if __name__ == "__main__" :
0 commit comments