@@ -1273,23 +1273,35 @@ def select_object_content(self, Bucket, Key, Expression, ExpressionType, InputSe
12731273 return data
12741274
12751275 # s3 bucket interface begin
1276- def create_bucket (self , Bucket , ** kwargs ):
1276+ def create_bucket (self , Bucket , BucketAZConfig = None , ** kwargs ):
12771277 """创建一个bucket
12781278
12791279 :param Bucket(string): 存储桶名称.
1280+ :param BucketAZConfig(string): 存储桶的多AZ配置
12801281 :param kwargs(dict): 设置请求headers.
12811282 :return: None.
12821283
12831284 .. code-block:: python
12841285
12851286 config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
12861287 client = CosS3Client(config)
1287- # 创建bucket
1288+ # 创建单AZ bucket
12881289 response = client.create_bucket(
12891290 Bucket='bucket'
12901291 )
1292+ # 创建多AZ bucket
1293+ response = client.create_bucket(
1294+ Bucket='bucket',
1295+ BucketAZConfig='MAZ'
1296+ )
12911297 """
12921298 headers = mapped (kwargs )
1299+ xml_config = None
1300+ if BucketAZConfig == 'MAZ' :
1301+ bucket_config = {'BucketAZConfig' : 'MAZ' }
1302+ xml_config = format_xml (data = bucket_config , root = 'CreateBucketConfiguration' )
1303+ headers ['Content-MD5' ] = get_md5 (xml_config )
1304+ headers ['Content-Type' ] = 'application/xml'
12931305 url = self ._conf .uri (bucket = Bucket )
12941306 logger .info ("create bucket, url=:{url} ,headers=:{headers}" .format (
12951307 url = url ,
@@ -1298,6 +1310,7 @@ def create_bucket(self, Bucket, **kwargs):
12981310 method = 'PUT' ,
12991311 url = url ,
13001312 bucket = Bucket ,
1313+ data = xml_config ,
13011314 auth = CosS3Auth (self ._conf ),
13021315 headers = headers )
13031316 return None
@@ -2569,6 +2582,119 @@ def delete_bucket_domain(self, Bucket, **kwargs):
25692582 params = params )
25702583 return None
25712584
2585+ def put_bucket_domain_certificate (self , Bucket , DomainCertificateConfiguration , ** kwargs ):
2586+ """设置bucket的自定义域名证书配置规则
2587+
2588+ :param Bucket(string): 存储桶名称.
2589+ :param DomainCertificateConfiguration(dict): 设置Bucket的自定义域名证书配置规则.
2590+ :param kwargs(dict): 设置请求headers.
2591+ :return: None
2592+
2593+ .. code-block:: python
2594+ config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
2595+ client = CosS3Client(config)
2596+ # 设置bucket自定义域名证书配置规则
2597+ domain_cert_config = {}
2598+ response = client.put_bucket_domain_certificate(
2599+ Bucket='bucket',
2600+ DomainCertificateConfiguration=domain_cert_config
2601+ )
2602+ """
2603+ lst = ['<DomainList>' , '</DomainList>' ] # 类型为list的标签
2604+ xml_config = format_xml (data = DomainCertificateConfiguration , root = 'DomainCertificate' , lst = lst )
2605+ headers = mapped (kwargs )
2606+ headers ['Content-MD5' ] = get_md5 (xml_config )
2607+ headers ['Content-Type' ] = 'application/xml'
2608+ # params = {'domaincertificate': ''}
2609+ # 目前 Domain Certificate API 不能使用 params 传递 query_string '?domaincertificate=',
2610+ # 只能将'?domaincertificate'拼接到url
2611+ url = self ._conf .uri (bucket = Bucket )
2612+ url += '?domaincertificate'
2613+ logger .info ("put bucket domain certificate, url=:{url} ,headers=:{headers}" .format (
2614+ url = url ,
2615+ headers = headers ))
2616+ rt = self .send_request (
2617+ method = 'PUT' ,
2618+ url = url ,
2619+ bucket = Bucket ,
2620+ data = xml_config ,
2621+ auth = CosS3Auth (self ._conf ),
2622+ headers = headers )
2623+ return None
2624+
2625+ def get_bucket_domain_certificate (self , Bucket , DomainName , ** kwargs ):
2626+ """获取bucket的自定义域名证书配置规则
2627+
2628+ :param Bucket(string): 存储桶名称.
2629+ :param DomainName(string): Bucket的自定义域名.
2630+ :param kwargs(dict): 设置请求headers.
2631+ :return(dict): Bucket的自定义域名证书配置规则.
2632+
2633+ .. code-block:: python
2634+ config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
2635+ client = CosS3Client(config)
2636+ # 获取bucket自定义域名证书配置规则
2637+ response = client.get_bucket_domain_certificate(
2638+ Bucket='bucket',
2639+ DomainName='domain-name'
2640+ )
2641+ """
2642+ headers = mapped (kwargs )
2643+ # 目前 Domain Certificate API 不能使用 params 传递 query_string '?domaincertificate=',
2644+ # 只能将'?domaincertificate'拼接到url
2645+ # params = {'domaincertificate': '', 'domainname': DomainName}
2646+ params = {'domainname' : DomainName }
2647+ url = self ._conf .uri (bucket = Bucket )
2648+ url += '?domaincertificate'
2649+ logger .info ("get bucket domain certificate, url=:{url} ,headers=:{headers}" .format (
2650+ url = url ,
2651+ headers = headers ))
2652+ rt = self .send_request (
2653+ method = 'GET' ,
2654+ url = url ,
2655+ bucket = Bucket ,
2656+ auth = CosS3Auth (self ._conf , params = params ),
2657+ headers = headers ,
2658+ params = params )
2659+ data = xml_to_dict (rt .content )
2660+ return data
2661+
2662+ def delete_bucket_domain_certificate (self , Bucket , DomainName , ** kwargs ):
2663+ """删除bucket的自定义域名证书配置规则
2664+
2665+ :param Bucket(string): 存储桶名称.
2666+ :param DomainName(string): Bucket的自定义域名.
2667+ :param kwargs(dict): 设置请求headers.
2668+ :return: None
2669+
2670+ .. code-block:: python
2671+ config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
2672+ client = CosS3Client(config)
2673+ # 删除bucket自定义域名证书配置规则
2674+ response = client.delete_bucket_domain_certificate(
2675+ Bucket='bucket',
2676+ DomainName='domain-name'
2677+ )
2678+ """
2679+ headers = mapped (kwargs )
2680+ # 目前 Domain Certificate API 不能使用 params 传递 query_string '?domaincertificate=',
2681+ # 只能将'?domaincertificate'拼接到url
2682+ # params = {'domaincertificate': '', 'domainname': DomainName}
2683+ params = {'domainname' : DomainName }
2684+ url = self ._conf .uri (bucket = Bucket )
2685+ url += "?domaincertificate"
2686+ logger .info ("delete bucket domain certificate, url=:{url} ,headers=:{headers}" .format (
2687+ url = url ,
2688+ headers = headers ))
2689+ rt = self .send_request (
2690+ method = 'DELETE' ,
2691+ url = url ,
2692+ bucket = Bucket ,
2693+ auth = CosS3Auth (self ._conf , params = params ),
2694+ headers = headers ,
2695+ params = params )
2696+ return None
2697+
25722698 def put_bucket_origin (self , Bucket , OriginConfiguration = {}, ** kwargs ):
25732699 """设置bucket的回源规则
25742700
0 commit comments