Skip to content

Commit 3059360

Browse files
authored
Merge pull request #309 from tencentyun/feature_flynnzzhang_4ae49a7b
Feature flynnzzhang 4ae49a7b
2 parents e2fb313 + e7ae741 commit 3059360

File tree

3 files changed

+193
-30
lines changed

3 files changed

+193
-30
lines changed

demo/ci_media.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ def ci_get_media_queue():
5252
return response
5353

5454

55+
def ci_open_pic_bucket():
56+
# 图片处理异步服务开通
57+
response, data = client.ci_open_pic_bucket(
58+
Bucket=bucket_name,
59+
)
60+
print(response)
61+
print(data)
62+
return response, data
63+
64+
5565
def ci_get_pic_bucket():
5666
# 查询图片处理异步服务开通状态
5767
response = client.ci_get_pic_bucket(
@@ -65,6 +75,16 @@ def ci_get_pic_bucket():
6575
return response
6676

6777

78+
def ci_close_pic_bucket():
79+
# 图片处理异步服务关闭
80+
response, data = client.ci_close_pic_bucket(
81+
Bucket=bucket_name,
82+
)
83+
print(response)
84+
print(data)
85+
return response, data
86+
87+
6888
def ci_get_ai_bucket():
6989
# 查询ai处理异步服务开通状态
7090
response = client.ci_get_ai_bucket(
@@ -1970,7 +1990,9 @@ def ci_update_hls_play_key():
19701990
# ci_create_image_inspect_jobs()
19711991
# ci_create_sound_hound_jobs()
19721992
# ci_list_inventory_trigger_jobs()
1993+
# ci_open_pic_bucket()
19731994
# ci_get_pic_bucket()
1995+
# ci_close_pic_bucket()
19741996
# ci_get_inventory_trigger_jobs()
19751997
# ci_get_ai_bucket()
19761998
# ci_get_ai_queue()

qcloud_cos/cos_client.py

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7316,6 +7316,63 @@ def ci_update_media_queue(self, Bucket, QueueId, Request={}, UrlPath="/queue/",
73167316
format_dict(data, ['Queue'])
73177317
return data
73187318

7319+
def ci_open_pic_bucket(self, Bucket, **kwargs):
7320+
""" 开通图片处理异步服务 https://cloud.tencent.com/document/product/460/95749
7321+
7322+
:param Bucket(string) 存储桶名称.
7323+
:param kwargs:(dict) 设置上传的headers.
7324+
:return(dict): response header.
7325+
:return(dict): 请求成功返回的结果, dict类型.
7326+
7327+
. code-block:: python
7328+
7329+
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
7330+
client = CosS3Client(config)
7331+
# 开通图片处理异步服务
7332+
response, data = client.ci_open_pic_bucket(
7333+
Bucket='bucket')
7334+
print data
7335+
print response
7336+
"""
7337+
headers = mapped(kwargs)
7338+
final_headers = {}
7339+
params = {}
7340+
for key in headers:
7341+
if key.startswith("response"):
7342+
params[key] = headers[key]
7343+
else:
7344+
final_headers[key] = headers[key]
7345+
headers = final_headers
7346+
7347+
params = format_values(params)
7348+
7349+
path = "/" + "picbucket"
7350+
url = self._conf.uri(bucket=Bucket, path=path, endpoint=self._conf._endpoint_ci)
7351+
7352+
logger.info("ci_open_pic_bucket result, url=:{url} ,headers=:{headers}, params=:{params}".format(
7353+
url=url,
7354+
headers=headers,
7355+
params=params))
7356+
rt = self.send_request(
7357+
method='POST',
7358+
url=url,
7359+
auth=CosS3Auth(self._conf, path, params=params),
7360+
params=params,
7361+
headers=headers,
7362+
ci_request=True)
7363+
7364+
data = rt.content
7365+
response = dict(**rt.headers)
7366+
if 'Content-Type' in response:
7367+
if response['Content-Type'] == 'application/xml' and 'Content-Length' in response and \
7368+
response['Content-Length'] != 0:
7369+
data = xml_to_dict(rt.content)
7370+
format_dict(data, ['Response'])
7371+
elif response['Content-Type'].startswith('application/json'):
7372+
data = rt.json()
7373+
7374+
return response, data
7375+
73197376
def ci_get_pic_bucket(self, Regions='', BucketName='', BucketNames='', PageNumber='', PageSize='', **kwargs):
73207377
"""查询图片异步处理开通状态接口
73217378
@@ -7345,6 +7402,63 @@ def ci_get_pic_bucket(self, Regions='', BucketName='', BucketNames='', PageNumbe
73457402
BucketNames=BucketNames, PageNumber=PageNumber,
73467403
PageSize=PageSize, Path='/picbucket', **kwargs)
73477404

7405+
def ci_close_pic_bucket(self, Bucket, **kwargs):
7406+
""" 关闭图片处理异步服务 https://cloud.tencent.com/document/product/460/95751
7407+
7408+
:param Bucket(string) 存储桶名称.
7409+
:param kwargs:(dict) 设置上传的headers.
7410+
:return(dict): response header.
7411+
:return(dict): 请求成功返回的结果, dict类型.
7412+
7413+
. code-block:: python
7414+
7415+
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
7416+
client = CosS3Client(config)
7417+
# 关闭图片处理异步服务
7418+
response, data = client.ci_close_pic_bucket(
7419+
Bucket='bucket')
7420+
print data
7421+
print response
7422+
"""
7423+
headers = mapped(kwargs)
7424+
final_headers = {}
7425+
params = {}
7426+
for key in headers:
7427+
if key.startswith("response"):
7428+
params[key] = headers[key]
7429+
else:
7430+
final_headers[key] = headers[key]
7431+
headers = final_headers
7432+
7433+
params = format_values(params)
7434+
7435+
path = "/" + "picbucket"
7436+
url = self._conf.uri(bucket=Bucket, path=path, endpoint=self._conf._endpoint_ci)
7437+
7438+
logger.info("ci_close_pic_bucket result, url=:{url} ,headers=:{headers}, params=:{params}".format(
7439+
url=url,
7440+
headers=headers,
7441+
params=params))
7442+
rt = self.send_request(
7443+
method='DELETE',
7444+
url=url,
7445+
auth=CosS3Auth(self._conf, path, params=params),
7446+
params=params,
7447+
headers=headers,
7448+
ci_request=True)
7449+
7450+
data = rt.content
7451+
response = dict(**rt.headers)
7452+
if 'Content-Type' in response:
7453+
if response['Content-Type'] == 'application/xml' and 'Content-Length' in response and \
7454+
response['Content-Length'] != 0:
7455+
data = xml_to_dict(rt.content)
7456+
format_dict(data, ['Response'])
7457+
elif response['Content-Type'].startswith('application/json'):
7458+
data = rt.json()
7459+
7460+
return response, data
7461+
73487462
def ci_update_media_pic_queue(self, Bucket, QueueId, Request={}, **kwargs):
73497463
""" 更新图片处理队列接口
73507464

ut/test.py

Lines changed: 57 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3623,7 +3623,7 @@ def test_append_object():
36233623

36243624

36253625
def test_ci_delete_asr_template():
3626-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3626+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
36273627
if response['TotalCount'] == '0':
36283628
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
36293629
client.ci_open_asr_bucket(
@@ -3640,7 +3640,7 @@ def test_ci_delete_asr_template():
36403640

36413641
def test_ci_get_asr_template():
36423642
# 获取语音识别模板
3643-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3643+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
36443644
if response['TotalCount'] == '0':
36453645
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
36463646
client.ci_open_asr_bucket(
@@ -3658,7 +3658,7 @@ def test_ci_get_asr_template():
36583658

36593659
def test_ci_create_asr_template():
36603660
# 创建语音识别模板
3661-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3661+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
36623662
if response['TotalCount'] == '0':
36633663
client.ci_open_asr_bucket(
36643664
Bucket=ci_bucket_name,
@@ -3702,7 +3702,7 @@ def test_ci_create_asr_template():
37023702

37033703

37043704
def test_ci_list_asr_jobs():
3705-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3705+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
37063706
if response['TotalCount'] == '0':
37073707
client.ci_open_asr_bucket(
37083708
Bucket=ci_bucket_name,
@@ -3732,7 +3732,7 @@ def test_ci_list_asr_jobs():
37323732

37333733
def test_ci_get_asr_jobs():
37343734
# 获取语音识别任务信息
3735-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3735+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
37363736
if response['TotalCount'] == '0':
37373737
client.ci_open_asr_bucket(
37383738
Bucket=ci_bucket_name,
@@ -3747,7 +3747,7 @@ def test_ci_get_asr_jobs():
37473747

37483748

37493749
def test_ci_create_asr_jobs():
3750-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3750+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
37513751
if response['TotalCount'] == '0':
37523752
client.ci_open_asr_bucket(
37533753
Bucket=ci_bucket_name,
@@ -3787,7 +3787,7 @@ def test_ci_create_asr_jobs():
37873787

37883788

37893789
def test_ci_put_asr_queue():
3790-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3790+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
37913791
if response['TotalCount'] == '0':
37923792
client.ci_open_asr_bucket(
37933793
Bucket=ci_bucket_name,
@@ -3820,7 +3820,7 @@ def test_ci_put_asr_queue():
38203820

38213821
def test_ci_get_asr_queue():
38223822
# 查询语音识别队列信息
3823-
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name)
3823+
response = client.ci_get_asr_bucket(BucketName=ci_bucket_name, PageSize="1")
38243824
if response['TotalCount'] == '0':
38253825
client.ci_open_asr_bucket(
38263826
Bucket=ci_bucket_name,
@@ -3946,28 +3946,6 @@ def test_ci_list_workflowexecution():
39463946
assert response
39473947

39483948

3949-
def test_ci_trigger_workflow():
3950-
# 触发工作流接口
3951-
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
3952-
response = client.ci_trigger_workflow(
3953-
Bucket=ci_bucket_name,
3954-
WorkflowId='w5307ee7a60d6489383c3921c715dd1c5',
3955-
Key=ci_test_image,
3956-
**kwargs
3957-
)
3958-
assert response
3959-
print(response)
3960-
instance_id = response['InstanceId']
3961-
# 查询工作流实例接口
3962-
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
3963-
response = client.ci_get_workflowexecution(
3964-
Bucket=ci_bucket_name,
3965-
RunId=instance_id,
3966-
**kwargs
3967-
)
3968-
assert response
3969-
3970-
39713949
def test_ci_get_media_transcode_jobs():
39723950
# 转码任务详情
39733951
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
@@ -4592,6 +4570,7 @@ def test_ci_get_ai_bucket():
45924570
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
45934571
response = client.ci_get_ai_bucket(
45944572
BucketName=ci_bucket_name,
4573+
PageSize = "1",
45954574
**kwargs
45964575
)
45974576
print(response)
@@ -4769,6 +4748,8 @@ def test_ci_workflow():
47694748
)
47704749
assert response['MediaWorkflow']['State'] == 'Paused'
47714750

4751+
ci_trigger_workflow(workflow_id)
4752+
47724753
response = client.ci_delete_workflow(
47734754
Bucket=ci_bucket_name, # 桶名称
47744755
WorkflowId=workflow_id, # 需要删除的工作流ID
@@ -4777,6 +4758,27 @@ def test_ci_workflow():
47774758
print(response)
47784759
assert response['WorkflowId'] == workflow_id
47794760

4761+
def ci_trigger_workflow(workflow_id):
4762+
# 触发工作流接口
4763+
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
4764+
response = client.ci_trigger_workflow(
4765+
Bucket=ci_bucket_name,
4766+
WorkflowId=workflow_id,
4767+
Key=ci_test_image,
4768+
**kwargs
4769+
)
4770+
assert response
4771+
print(response)
4772+
instance_id = response['InstanceId']
4773+
# 查询工作流实例接口
4774+
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
4775+
response = client.ci_get_workflowexecution(
4776+
Bucket=ci_bucket_name,
4777+
RunId=instance_id,
4778+
**kwargs
4779+
)
4780+
assert response
4781+
47804782

47814783
def test_ci_auditing_report_badcase():
47824784
if TEST_CI != 'true':
@@ -5905,6 +5907,31 @@ def test_ci_ai_bucket():
59055907
assert data['AiBucket']['Name'] == ci_bucket_name
59065908

59075909

5910+
def test_ci_pic_bucket():
5911+
# 关闭图片处理异步服务
5912+
response, data = ai_recognition_client.ci_close_pic_bucket(
5913+
Bucket=ci_bucket_name
5914+
)
5915+
assert data['BucketName'] == ci_bucket_name
5916+
# 开通图片处理异步服务
5917+
response, data = ai_recognition_client.ci_open_pic_bucket(
5918+
Bucket=ci_bucket_name
5919+
)
5920+
assert data['PicBucket']['Name'] == ci_bucket_name
5921+
5922+
response, data = ai_recognition_client.ci_close_pic_bucket(
5923+
Bucket=ci_bucket_name,
5924+
Accept="application/json"
5925+
)
5926+
assert data['BucketName'] == ci_bucket_name
5927+
# 开通AI内容识别服务
5928+
response, data = ai_recognition_client.ci_open_pic_bucket(
5929+
Bucket=ci_bucket_name,
5930+
Accept="application/json"
5931+
)
5932+
assert data['PicBucket']['Name'] == ci_bucket_name
5933+
5934+
59085935
def test_ci_hls_play_key():
59095936
kwargs = {"CacheControl": "no-cache", "ResponseCacheControl": "no-cache"}
59105937

0 commit comments

Comments
 (0)