@@ -3425,23 +3425,21 @@ def update_object_meta(self, Bucket, Key, **kwargs):
3425
3425
)
3426
3426
return response
3427
3427
3428
- def put_bucket_encryption (self , Bucket , SSEAlgorithm = None , ** kwargs ):
3428
+ def put_bucket_encryption (self , Bucket , ServerSideEncryptionConfiguration = {} , ** kwargs ):
3429
3429
"""设置执行存储桶下的默认加密配置
3430
3430
3431
3431
:param Bucket(string): 存储桶名称.
3432
3432
:param SSEAlgorithm(string): 要使用的服务端加密算法
3433
3433
:param kwargs(dict): 设置下载的headers.
3434
3434
:return(dict): 设置成功返回的结果.
3435
3435
"""
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 ))
3445
3443
headers = mapped (kwargs )
3446
3444
params = {'encryption' : '' }
3447
3445
url = self ._conf .uri (bucket = Bucket )
@@ -3453,12 +3451,11 @@ def put_bucket_encryption(self, Bucket, SSEAlgorithm=None, **kwargs):
3453
3451
url = url ,
3454
3452
bucket = Bucket ,
3455
3453
auth = CosS3Auth (self ._conf , params = params ),
3456
- data = to_bytes ( body ) ,
3454
+ data = xml_config ,
3457
3455
headers = headers ,
3458
3456
params = params )
3459
3457
3460
- response = dict (** rt .headers )
3461
- return response
3458
+ return None
3462
3459
3463
3460
def get_bucket_encryption (self , Bucket , ** kwargs ):
3464
3461
"""获取存储桶下的默认加密配置
@@ -3480,15 +3477,11 @@ def get_bucket_encryption(self, Bucket, **kwargs):
3480
3477
auth = CosS3Auth (self ._conf , params = params ),
3481
3478
headers = headers ,
3482
3479
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 )
3490
3480
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
3492
3485
3493
3486
def delete_bucket_encryption (self , Bucket , ** kwargs ):
3494
3487
"""用于删除指定存储桶下的默认加密配置
@@ -3500,7 +3493,7 @@ def delete_bucket_encryption(self, Bucket, **kwargs):
3500
3493
headers = mapped (kwargs )
3501
3494
params = {'encryption' : '' }
3502
3495
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 (
3504
3497
url = url ,
3505
3498
headers = headers ))
3506
3499
rt = self .send_request (
@@ -3511,8 +3504,7 @@ def delete_bucket_encryption(self, Bucket, **kwargs):
3511
3504
headers = headers ,
3512
3505
params = params )
3513
3506
3514
- response = dict (** rt .headers )
3515
- return response
3507
+ return None
3516
3508
3517
3509
3518
3510
if __name__ == "__main__" :
0 commit comments