@@ -2809,9 +2809,7 @@ def list_buckets(self, **kwargs):
28092809 config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
28102810 client = CosS3Client(config)
28112811 # 获取账户下所有存储桶信息
2812- response = logging_client.list_buckets(
2813- Bucket='bucket'
2814- )
2812+ response = client.list_buckets()
28152813 """
28162814 headers = mapped (kwargs )
28172815 url = '{scheme}://service.cos.myqcloud.com/' .format (scheme = self ._conf ._scheme )
@@ -3427,6 +3425,84 @@ def update_object_meta(self, Bucket, Key, **kwargs):
34273425 )
34283426 return response
34293427
3428+ def put_bucket_encryption (self , Bucket , ServerSideEncryptionConfiguration = {}, ** kwargs ):
3429+ """设置执行存储桶下的默认加密配置
3430+
3431+ :param Bucket(string): 存储桶名称.
3432+ :param ServerSideEncryptionConfiguration(dict): 设置Bucket的加密规则
3433+ :param kwargs(dict): 设置请求的headers.
3434+ :return: None.
3435+ """
3436+ # 类型为list的标签
3437+ lst = [
3438+ '<Rule>' ,
3439+ '</Rule>'
3440+ ]
3441+ xml_config = format_xml (data = ServerSideEncryptionConfiguration , root = 'ServerSideEncryptionConfiguration' , lst = lst )
3442+ headers = mapped (kwargs )
3443+ params = {'encryption' : '' }
3444+ url = self ._conf .uri (bucket = Bucket )
3445+ logger .info ("put bucket encryption, url=:{url} ,headers=:{headers}" .format (
3446+ url = url ,
3447+ headers = headers ))
3448+ rt = self .send_request (
3449+ method = 'PUT' ,
3450+ url = url ,
3451+ bucket = Bucket ,
3452+ auth = CosS3Auth (self ._conf , params = params ),
3453+ data = xml_config ,
3454+ headers = headers ,
3455+ params = params )
3456+
3457+ return None
3458+
3459+ def get_bucket_encryption (self , Bucket , ** kwargs ):
3460+ """获取存储桶下的默认加密配置
3461+
3462+ :param Bucket(string): 存储桶名称.
3463+ :param kwargs(dict): 设置请求的headers.
3464+ :return(dict): 返回bucket的加密规则.
3465+ """
3466+ headers = mapped (kwargs )
3467+ params = {'encryption' : '' }
3468+ url = self ._conf .uri (bucket = Bucket )
3469+ logger .info ("get bucket encryption, url=:{url} ,headers=:{headers}" .format (
3470+ url = url ,
3471+ headers = headers ))
3472+ rt = self .send_request (
3473+ method = 'GET' ,
3474+ url = url ,
3475+ bucket = Bucket ,
3476+ auth = CosS3Auth (self ._conf , params = params ),
3477+ headers = headers ,
3478+ params = params )
3479+
3480+ data = xml_to_dict (rt .content )
3481+ format_dict (data , ['Rule' ])
3482+ return data
3483+
3484+ def delete_bucket_encryption (self , Bucket , ** kwargs ):
3485+ """用于删除指定存储桶下的默认加密配置
3486+
3487+ :param Bucket(string): 存储桶名称.
3488+ :param kwargs(dict): 设置请求的headers.
3489+ :return: None.
3490+ """
3491+ headers = mapped (kwargs )
3492+ params = {'encryption' : '' }
3493+ url = self ._conf .uri (bucket = Bucket )
3494+ logger .info ("delete bucket encryption, url=:{url} ,headers=:{headers}" .format (
3495+ url = url ,
3496+ headers = headers ))
3497+ rt = self .send_request (
3498+ method = 'DELETE' ,
3499+ url = url ,
3500+ bucket = Bucket ,
3501+ auth = CosS3Auth (self ._conf , params = params ),
3502+ headers = headers ,
3503+ params = params )
3504+
3505+ return None
34303506 def put_async_fetch_task (self , Bucket , FetchTaskConfiguration = {}, ** kwargs ):
34313507 """发起异步拉取对象到COS的任务
34323508
0 commit comments