1049 lines
48 KiB
Python
1049 lines
48 KiB
Python
# -*- coding=utf-8
|
||
import json
|
||
|
||
from qcloud_cos import CosS3Auth
|
||
from qcloud_cos.cos_client import logger, CosS3Client
|
||
from .cos_comm import *
|
||
|
||
|
||
class AIRecognitionClient(CosS3Client):
|
||
|
||
def cos_create_ai_object_detect_job(self, Bucket, ObjectKey="",
|
||
DetectUrl=None, **kwargs):
|
||
""" 图像主体检测 https://cloud.tencent.com/document/product/460/97979
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey。 detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 图像主体检测
|
||
response, data = client.cos_create_ai_object_detect_job(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
headers = mapped(kwargs)
|
||
final_headers = {}
|
||
params = {}
|
||
for key in headers:
|
||
if key.startswith("response"):
|
||
params[key] = headers[key]
|
||
else:
|
||
final_headers[key] = headers[key]
|
||
headers = final_headers
|
||
params["ci-process"] = "AIObjectDetect"
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
|
||
params = format_values(params)
|
||
|
||
path = "/" + ObjectKey
|
||
url = self._conf.uri(bucket=Bucket, path=path)
|
||
|
||
logger.info(
|
||
"cos_create_ai_object_detect_job result, url=:{url} ,headers=:{headers}, params=:{params}".format(
|
||
url=url,
|
||
headers=headers,
|
||
params=params))
|
||
rt = self.send_request(
|
||
method='GET',
|
||
url=url,
|
||
auth=CosS3Auth(self._conf, path, params=params),
|
||
params=params,
|
||
headers=headers,
|
||
ci_request=False)
|
||
|
||
data = rt.content
|
||
response = dict(**rt.headers)
|
||
if 'Content-Type' in response:
|
||
if response['Content-Type'] == 'application/xml':
|
||
data = xml_to_dict(rt.content)
|
||
format_dict(data, ['Response'])
|
||
elif response['Content-Type'].startswith('application/json'):
|
||
data = rt.json()
|
||
|
||
return response, data
|
||
|
||
def cos_goods_matting(self, Bucket, ObjectKey="", DetectUrl=None,
|
||
CenterLayout=0, PaddingLayout=None, Stream=True, **kwargs):
|
||
""" 商品抠图 https://cloud.tencent.com/document/product/460/79735
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey.
|
||
:param CenterLayout(int) 抠图商品居中显示; 值为1时居中显示,值为0时不作处理,默认为0.
|
||
:param PaddingLayout(string) 将处理后的图片四边进行留白,形式为 padding-layout=<dx>x<dy>,左右两边各进行 dx 像素的留白,上下两边各进行 dy 像素的留白.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 商品抠图
|
||
response, data = client.cos_goods_matting(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
if CenterLayout != 0:
|
||
params["center-layout"] = CenterLayout
|
||
if PaddingLayout is not None:
|
||
params["padding-layout"] = PaddingLayout
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="GoodsMatting", Params=params,
|
||
NeedHeader=True, Stream=Stream, **kwargs)
|
||
|
||
def cos_ai_body_recognition(self, Bucket, ObjectKey='', DetectUrl=None,
|
||
**kwargs):
|
||
""" 人体识别 https://cloud.tencent.com/document/product/460/83196
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 人体识别
|
||
response, data = client.cos_ai_body_recognition(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AIBodyRecognition", Params=params,
|
||
NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_detect_face(self, Bucket, ObjectKey, MaxFaceNum=1, **kwargs):
|
||
""" 人脸检测 https://cloud.tencent.com/document/product/460/63223
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param MaxFaceNum(int) 最多处理的人脸数目。默认值为1(仅检测图片中面积最大的那张人脸),最大<E69C80><E5A4A7><EFBFBD>为120。此参数用于控制处理待检测图片中的人脸个数,值越小,处理速度越快。.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 人脸检测
|
||
response, data = client.cos_ai_detect_face(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
MaxFaceNum=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
params["max-face-num"] = MaxFaceNum
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="DetectFace",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_detect_pet(self, Bucket, ObjectKey, **kwargs):
|
||
""" 宠物识别 https://cloud.tencent.com/document/product/460/95753
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 宠物识别
|
||
response, data = client.cos_ai_detect_pet(
|
||
Bucket='bucket',
|
||
ObjectKey=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="detect-pet",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_enhance_image(self, Bucket, ObjectKey='', Denoise=3,
|
||
Sharpen=3, DetectUrl=None, IgnoreError=None, Stream=True, **kwargs):
|
||
""" 图像增强 https://cloud.tencent.com/document/product/460/83792
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param Denoise(int) 去噪强度值,取值范围为 0 - 5 之间的整数,值为 0 时不进行去噪操作,默认值为3。.
|
||
:param Sharpen(int) 锐化强度值,取值范围为 0 - 5 之间的整数,值为 0 时不进行锐化操作,默认值为3。.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了detect-url 时,后台会处理 detect-url链接,无需再填写 ObjectKey ,detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为 http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg.
|
||
:param IgnoreError(int) .
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 图像增强
|
||
response, data = client.cos_ai_enhance_image(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
Denoise='',
|
||
Sharpen='',
|
||
DetectUrl='',
|
||
IgnoreError=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if Denoise is not None:
|
||
params["denoise"] = Denoise
|
||
if Sharpen is not None:
|
||
params["sharpen"] = Sharpen
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
if IgnoreError is not None:
|
||
params["ignore-error"] = IgnoreError
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AIEnhanceImage", Params=params,
|
||
NeedHeader=True, Stream=Stream, **kwargs)
|
||
|
||
def cos_ai_face_effect(self, Bucket, Type, ObjectKey="", DetectUrl=None,
|
||
Whitening=30, Smoothing=10, FaceLifting=70, EyeEnlarging=70,
|
||
Gender=None, Age=None, **kwargs):
|
||
""" 人脸特效 https://cloud.tencent.com/document/product/460/47197
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。.
|
||
:param Type(string) 人脸特效类型,人脸美颜:face-beautify;人脸性别转换:face-gender-transformation;人脸年龄变化:face-age-transformation;人像分割:face-segmentation.
|
||
:param Whitening(int) type为face-beautify时生效,美白程度,取值范围[0,100]。0不美白,100代表最高程度。默认值30.
|
||
:param Smoothing(int) type为face-beautify时生效,磨皮程度,取值范围[0,100]。0不磨皮,100代表最高程度。默认值10.
|
||
:param FaceLifting(int) type为face-beautify时生效,瘦脸程度,取值范围[0,100]。0不瘦脸,100代表最高程度。默认值70.
|
||
:param EyeEnlarging(int) type为face-beautify时生效,大眼程度,取值范围[0,100]。0不大眼,100代表最高程度。默认值70.
|
||
:param Gender(int) type为face-gender-transformation时生效,选择转换方向,0:男变女,1:女变男。无默认值,为必选项。限制:仅对图片中面积最大的人脸进行转换。.
|
||
:param Age(int) type为face-age-transformation时生效,变化到的人脸年龄,[10,80]。无默认值,为必选项。限制:仅对图片中面积最大的人脸进行转换。.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 人脸特效
|
||
response, data = client.cos_ai_face_effect(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl='',
|
||
Type='',
|
||
Whitening='',
|
||
Smoothing='',
|
||
FaceLifting='',
|
||
EyeEnlarging='',
|
||
Gender='',
|
||
Age=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
params["type"] = Type
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
if Whitening is not None:
|
||
params["whitening"] = Whitening
|
||
if Smoothing is not None:
|
||
params["smoothing"] = Smoothing
|
||
if FaceLifting is not None:
|
||
params["faceLifting"] = FaceLifting
|
||
if EyeEnlarging is not None:
|
||
params["eyeEnlarging"] = EyeEnlarging
|
||
if Gender is not None:
|
||
params["gender"] = Gender
|
||
if Age is not None:
|
||
params["age"] = Age
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="face-effect",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_game_rec(self, Bucket, ObjectKey='', DetectUrl=None, **kwargs):
|
||
""" 游戏场景识别 https://cloud.tencent.com/document/product/460/93153
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 图片地址.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 对任意公网可访问的图片进行游戏场景识别。不填写 detect-url 时,后台会默认处理 objectkey ;填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 objectkey , detect-url 示例:http://www.example.com/abc.jpg。.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 游戏场景识别
|
||
response, data = client.cos_ai_game_rec(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="AIGameRec",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_id_card_ocr(self, Bucket, ObjectKey, CardSide=None, Config=None,
|
||
**kwargs):
|
||
""" 身份证识别 https://cloud.tencent.com/document/product/460/48638
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param CardSide(string) FRONT:身份证有照片的一面(人像面)BACK:身份证有国徽的一面(国徽面)该参数如果不填,将为您自动判断身份证正反面.
|
||
:param Config(string) 以下可选字段均为 bool 类型,默认 false:CropIdCard,身份证照片裁剪(去掉证件外多余的边缘、自动矫正拍摄角度)CropPortrait,人像照片裁剪(自动抠取身份证头像区域)CopyWarn,复印件告警BorderCheckWarn,边框和框内遮挡告警ReshootWarn,翻拍告警DetectPsWarn,PS 检测告警TempIdWarn,临时身份证告警InvalidDateWarn,身份证有效日期不合法告警Quality,图片质量分数(评价图片的模糊程度)MultiCardDetect,是否开启多卡证检测参数设置方式参考:Config = {"CropIdCard":true,"CropPortrait":true}.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 身份证识别
|
||
response, data = client.cos_aiid_card_ocr(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
CardSide='',
|
||
Config=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if CardSide is not None:
|
||
params["CardSide"] = CardSide
|
||
if Config is not None:
|
||
params["Config"] = Config
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="IDCardOCR",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_image_coloring(self, Bucket, ObjectKey="", DetectUrl=None,
|
||
Stream=True, **kwargs):
|
||
""" 图片上色 https://cloud.tencent.com/document/product/460/83794
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 待上色图片url,需要进行urlencode,与ObjectKey二选其一,如果同时存在,则默认以ObjectKey为准.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 图片上色
|
||
response, data = client.cos_ai_image_coloring(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AIImageColoring", Params=params,
|
||
Stream=Stream, NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_image_crop(self, Bucket, Width, Height, ObjectKey="",
|
||
DetectUrl=None, Fixed=0, IgnoreError=None, Stream=True, **kwargs):
|
||
""" 图像智能裁剪 https://cloud.tencent.com/document/product/460/83791
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg.
|
||
:param Width(int) 需要裁剪区域的宽度,与height共同组成所需裁剪的图片宽高比例;输入数字请大于0、小于图片宽度的像素值.
|
||
:param Height(int) 需要裁剪区域的高度,与width共同组成所需裁剪的图片宽高比例;输入数字请大于0、小于图片高度的像素值;width : height建议取值在[1, 2.5]之间,超过这个范围可能会影响效果.
|
||
:param Fixed(int) 是否严格按照 width 和 height 的值进行输出。取值为0时,宽高比例(width : height)会简化为最简分数,即如果width输入10、height输入20,会简化为1:2;取值为1时,输出图片的宽度等于width,高度等于height;默认值为0.
|
||
:param IgnoreError(int) 当此参数为1时,针对文件过大等导致处理失败的场景,会直接返回原图而不报错.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 图像智能裁剪
|
||
response, data = client.cos_ai_image_crop(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl='',
|
||
Width='',
|
||
Height='',
|
||
Fixed='',
|
||
IgnoreError=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
params["width"] = Width
|
||
params["height"] = Height
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
if Fixed is not None:
|
||
params["fixed"] = Fixed
|
||
if IgnoreError is not None:
|
||
params["ignore-error"] = IgnoreError
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="AIImageCrop",
|
||
Params=params, NeedHeader=True, Stream=Stream,
|
||
**kwargs)
|
||
|
||
def cos_ai_license_rec(self, Bucket, CardType, ObjectKey='', DetectUrl=None,
|
||
**kwargs):
|
||
""" 卡证识别 https://cloud.tencent.com/document/product/460/96767
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg.
|
||
:param CardType(string) 卡证识别类型,有效值为IDCard,DriverLicense。<br>IDCard表示身份证;DriverLicense表示驾驶证,默认:DriverLicense.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 卡证识别
|
||
response, data = client.cos_ai_license_rec(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl='',
|
||
CardType=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
params["ci-process"] = "AILicenseRec"
|
||
params["CardType"] = CardType
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AILicenseRec", Params=params,
|
||
NeedHeader=True, **kwargs)
|
||
|
||
def cos_ai_pic_matting(self, Bucket, ObjectKey='', DetectUrl=None,
|
||
CenterLayout=0, PaddingLayout=None, Stream=True, **kwargs):
|
||
""" 通用抠图 https://cloud.tencent.com/document/product/460/106750
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。.
|
||
:param CenterLayout(int) 抠图主体居中显示;值为1时居中显示,值为0不做处理,默认为0.
|
||
:param PaddingLayout(string) 将处理后的图片四边进行留白,形式为 padding-layout=<dx>x<dy>,左右两边各进行 dx 像素的留白,上下两边各进行 dy 像素的留白,例如:padding-layout=20x10默认不进行留白操作,dx、dy 最大值为1000像素。.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 通用抠图
|
||
response, data = client.cos_ai_pic_matting(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl='',
|
||
CenterLayout='',
|
||
PaddingLayout=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
if CenterLayout is not None:
|
||
params["center-layout"] = CenterLayout
|
||
if PaddingLayout is not None:
|
||
params["padding-layout"] = PaddingLayout
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AIPicMatting", Params=params,
|
||
NeedHeader=True, Stream=Stream, **kwargs)
|
||
|
||
def cos_ai_portrait_matting(self, Bucket, ObjectKey='', DetectUrl=None,
|
||
CenterLayout=0, PaddingLayout=None, Stream=True, **kwargs):
|
||
""" 人像抠图 https://cloud.tencent.com/document/product/460/106751
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param DetectUrl(string) 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey。 detect-url 示例:http://www.example.com/abc.jpg,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。.
|
||
:param CenterLayout(int) 抠图主体居中显示;值为1时居中显示,值为0不做处理,默认为0.
|
||
:param PaddingLayout(string) 将处理后的图片四边进行留白,形式为 padding-layout=x,左右两边各进行 dx 像素的留白,上下两边各进行 dy 像素的留白,例如:padding-layout=20x10默认不进行留白操作,dx、dy最大值为1000像素。.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 人像抠图
|
||
response, data = client.cos_ai_portrait_matting(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
DetectUrl='',
|
||
CenterLayout='',
|
||
PaddingLayout=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params["detect-url"] = DetectUrl
|
||
if CenterLayout is not None:
|
||
params["center-layout"] = CenterLayout
|
||
if PaddingLayout is not None:
|
||
params["padding-layout"] = PaddingLayout
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AIPortraitMatting", Params=params,
|
||
NeedHeader=True, Stream=Stream, **kwargs)
|
||
|
||
def cos_auto_translation_block(self, Bucket, InputText, SourceLang,
|
||
TargetLang, TextDomain='general', TextStyle='sentence', **kwargs):
|
||
""" 实时文字翻译 https://cloud.tencent.com/document/product/460/83547
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param InputText(string) 待翻译的文本.
|
||
:param SourceLang(string) 输入语言,如 "zh".
|
||
:param TargetLang(string) 输出语言,如 "en".
|
||
:param TextDomain(string) 文本所属业务领域,如: "ecommerce", //缺省值为 general.
|
||
:param TextStyle(string) 文本类型,如: "title", //缺省值为 sentence.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 实时文字翻译
|
||
response, data = client.cos_auto_translation_block(
|
||
Bucket='bucket',
|
||
InputText='',
|
||
SourceLang='',
|
||
TargetLang='',
|
||
TextDomain='',
|
||
TextStyle=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
params["InputText"] = InputText
|
||
params["SourceLang"] = SourceLang
|
||
params["TargetLang"] = TargetLang
|
||
if TextDomain is not None:
|
||
params["TextDomain"] = TextDomain
|
||
if TextStyle is not None:
|
||
params["TextStyle"] = TextStyle
|
||
|
||
path = "/"
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="AutoTranslationBlock", Params=params,
|
||
NeedHeader=True, **kwargs)
|
||
|
||
def cos_get_action_sequence(self, Bucket, **kwargs):
|
||
""" 获取动作顺序 https://cloud.tencent.com/document/product/460/48648
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 获取动作顺序
|
||
response, data = client.cos_get_action_sequence(
|
||
Bucket='bucket'
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
|
||
path = "/"
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="GetActionSequence", Params=params,
|
||
NeedHeader=True, **kwargs)
|
||
|
||
def cos_get_live_code(self, Bucket, **kwargs):
|
||
""" 获取数字验证码 https://cloud.tencent.com/document/product/460/48647
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 获取数字验证码
|
||
response, data = client.cos_get_live_code(
|
||
Bucket='bucket'
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
path = "/"
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="GetLiveCode",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def cos_image_repair(self, Bucket, ObjectKey="", DetectUrl=None,
|
||
MaskPic=None, MaskPoly=None, Stream=True, **kwargs):
|
||
""" 图像修复 https://cloud.tencent.com/document/product/460/79042
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 图像修复
|
||
response, data = client.cos_image_repair(
|
||
Bucket='bucket',
|
||
ObjectKey=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
if DetectUrl is not None:
|
||
params['detect-url'] = DetectUrl
|
||
if MaskPic is not None:
|
||
params['MaskPic'] = MaskPic
|
||
if MaskPoly is not None:
|
||
params['MaskPoly'] = MaskPoly
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path, CiProcess="ImageRepair",
|
||
Params=params, NeedHeader=True, Stream=Stream,
|
||
**kwargs)
|
||
|
||
def cos_liveness_recognition(self, Bucket, ObjectKey, IdCard, Name,
|
||
LivenessType, ValidateData=None, BestFrameNum=None, **kwargs):
|
||
""" 活体人脸核身 https://cloud.tencent.com/document/product/460/48641
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param IdCard(string) 身份证号.
|
||
:param Name(string) 姓名。中文请使用 UTF-8编码.
|
||
:param LivenessType(string) 活体检测类型,取值:LIP/ACTION/SILENTLIP 为数字模式,ACTION 为动作模式,SILENT 为静默模式,三种模式选择一种传入.
|
||
:param ValidateData(string) 数字模式传参:数字验证码(1234),需先调用接口获取数字验证码动作模式传参:传动作顺序(2,1 or 1,2),需先调用接口获取动作顺序静默模式传参:空.
|
||
:param BestFrameNum(int) 需要返回多张最佳截图,取值范围1 - 10,不设置默认返回一张最佳截图.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 活体人脸核身
|
||
response, data = client.cos_liveness_recognition(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
CiProcess='',
|
||
IdCard='',
|
||
Name='',
|
||
LivenessType='',
|
||
ValidateData='',
|
||
BestFrameNum=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
|
||
params = {}
|
||
params["IdCard"] = IdCard
|
||
params["Name"] = Name
|
||
params["LivenessType"] = LivenessType
|
||
if ValidateData is not None:
|
||
params["ValidateData"] = ValidateData
|
||
if BestFrameNum is not None:
|
||
params["BestFrameNum"] = BestFrameNum
|
||
|
||
path = "/" + ObjectKey
|
||
return self.ci_process(Bucket=Bucket, Key=path,
|
||
CiProcess="LivenessRecognition",
|
||
Params=params, NeedHeader=True, **kwargs)
|
||
|
||
def ci_image_search_bucket(self, Bucket, Body, **kwargs):
|
||
""" 开通以图搜图 https://cloud.tencent.com/document/product/460/63899
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param Body:(dict) 开通以图搜图配置信息.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 开通以图搜图
|
||
response, data = client.ci_image_search_bucket(
|
||
Bucket='bucket',
|
||
Body={}
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
headers = mapped(kwargs)
|
||
final_headers = {}
|
||
params = {}
|
||
for key in headers:
|
||
if key.startswith("response"):
|
||
params[key] = headers[key]
|
||
else:
|
||
final_headers[key] = headers[key]
|
||
headers = final_headers
|
||
|
||
params = format_values(params)
|
||
xml_config = format_xml(data=Body, root='Request')
|
||
path = "/" + "ImageSearchBucket"
|
||
url = self._conf.uri(bucket=Bucket, path=path,
|
||
endpoint=self._conf._endpoint_ci)
|
||
|
||
logger.info(
|
||
"ci_image_search_bucket result, url=:{url} ,headers=:{headers}, params=:{params},xml_config=:{xml_config}".format(
|
||
url=url,
|
||
headers=headers,
|
||
params=params,
|
||
xml_config=xml_config))
|
||
rt = self.send_request(
|
||
method='POST',
|
||
url=url,
|
||
data=xml_config,
|
||
auth=CosS3Auth(self._conf, path, params=params),
|
||
params=params,
|
||
headers=headers,
|
||
ci_request=True)
|
||
|
||
data = rt.content
|
||
response = dict(**rt.headers)
|
||
if 'Content-Type' in response:
|
||
if response[
|
||
'Content-Type'] == 'application/xml' and 'Content-Length' in response and \
|
||
response['Content-Length'] != 0:
|
||
data = xml_to_dict(rt.content)
|
||
format_dict(data, ['Response'])
|
||
elif response['Content-Type'].startswith('application/json'):
|
||
data = rt.json()
|
||
|
||
return response, data
|
||
|
||
def cos_add_image_search(self, Bucket, ObjectKey, Body, **kwargs):
|
||
""" 添加图库图片 https://cloud.tencent.com/document/product/460/63900
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param Body:(dict) 添加图库图片配置信息.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 添加图库图片
|
||
response, data = client.cos_add_image_search(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
Body={}
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
headers = mapped(kwargs)
|
||
final_headers = {}
|
||
params = {}
|
||
for key in headers:
|
||
if key.startswith("response"):
|
||
params[key] = headers[key]
|
||
else:
|
||
final_headers[key] = headers[key]
|
||
headers = final_headers
|
||
params["ci-process"] = "ImageSearch"
|
||
params["action"] = "AddImage"
|
||
params = format_values(params)
|
||
|
||
xml_config = format_xml(data=Body, root='Request')
|
||
|
||
path = "/" + ObjectKey
|
||
url = self._conf.uri(bucket=Bucket, path=path)
|
||
|
||
logger.info(
|
||
"cos_add_image_search result, url=:{url} ,headers=:{headers}, params=:{params},xml_config=:{xml_config}".format(
|
||
url=url,
|
||
headers=headers,
|
||
params=params,
|
||
xml_config=xml_config))
|
||
rt = self.send_request(
|
||
method='POST',
|
||
url=url,
|
||
data=xml_config,
|
||
auth=CosS3Auth(self._conf, path, params=params),
|
||
params=params,
|
||
headers=headers,
|
||
ci_request=False)
|
||
|
||
data = rt.content
|
||
response = dict(**rt.headers)
|
||
if 'Content-Type' in response:
|
||
if response[
|
||
'Content-Type'] == 'application/xml' and 'Content-Length' in response and \
|
||
response['Content-Length'] != 0:
|
||
data = xml_to_dict(rt.content)
|
||
format_dict(data, ['Response'])
|
||
elif response['Content-Type'].startswith('application/json'):
|
||
data = rt.json()
|
||
|
||
return response, data
|
||
|
||
def cos_get_search_image(self, Bucket, ObjectKey, MatchThreshold=0,
|
||
Offset=0, Limit=10, Filter=None, **kwargs):
|
||
""" 图片搜索接口 https://cloud.tencent.com/document/product/460/63901
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param MatchThreshold(int) 出参 Score 中,只有超过 MatchThreshold 值的结果才会返回。默认为0.
|
||
:param Offset(int) 起始序号,默认值为0.
|
||
:param Limit(int) 返回数量,默认值为10,最大值为100.
|
||
:param Filter(string) 针对入库时提交的 Tags 信息进行条件过滤。支持>、>=、<、<=、=、!=,多个条件之间支持 AND 和 OR 进行连接.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 图片搜索接口
|
||
response, data = client.cos_get_search_image(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
MatchThreshold='',
|
||
Offset='',
|
||
Limit='',
|
||
Filter=''
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
headers = mapped(kwargs)
|
||
final_headers = {}
|
||
params = {}
|
||
for key in headers:
|
||
if key.startswith("response"):
|
||
params[key] = headers[key]
|
||
else:
|
||
final_headers[key] = headers[key]
|
||
headers = final_headers
|
||
params["ci-process"] = "ImageSearch"
|
||
params["action"] = "SearchImage"
|
||
if MatchThreshold is not None:
|
||
params["MatchThreshold"] = MatchThreshold
|
||
if Offset is not None:
|
||
params["Offset"] = Offset
|
||
if Limit is not None:
|
||
params["Limit"] = Limit
|
||
if Filter is not None:
|
||
params["Filter"] = Filter
|
||
|
||
params = format_values(params)
|
||
|
||
path = "/" + ObjectKey
|
||
url = self._conf.uri(bucket=Bucket, path=path)
|
||
|
||
logger.info(
|
||
"cos_get_search_image result, url=:{url} ,headers=:{headers}, params=:{params}".format(
|
||
url=url,
|
||
headers=headers,
|
||
params=params))
|
||
rt = self.send_request(
|
||
method='GET',
|
||
url=url,
|
||
auth=CosS3Auth(self._conf, path, params=params),
|
||
params=params,
|
||
headers=headers,
|
||
ci_request=False)
|
||
|
||
data = rt.content
|
||
response = dict(**rt.headers)
|
||
if 'Content-Type' in response:
|
||
if response[
|
||
'Content-Type'] == 'application/xml' and 'Content-Length' in response and \
|
||
response['Content-Length'] != 0:
|
||
data = xml_to_dict(rt.content)
|
||
format_dict(data, ['Response'])
|
||
elif response['Content-Type'].startswith('application/json'):
|
||
data = rt.json()
|
||
|
||
return response, data
|
||
|
||
def cos_delete_image_search(self, Bucket, ObjectKey, Body, **kwargs):
|
||
""" 删除图库图片 https://cloud.tencent.com/document/product/460/63902
|
||
|
||
:param Bucket(string) 存储桶名称.
|
||
:param ObjectKey(string) 设置 ObjectKey.
|
||
:param Body:(dict) 删除图库图片配置信息.
|
||
:param kwargs:(dict) 设置上传的headers.
|
||
:return(dict): response header.
|
||
:return(dict): 请求成功返回的结果,dict类型.
|
||
|
||
.. code-block:: python
|
||
|
||
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
|
||
client = CosS3Client(config)
|
||
# 删除图库图片
|
||
response, data = client.cos_delete_image_search(
|
||
Bucket='bucket',
|
||
ObjectKey='',
|
||
Body={}
|
||
)
|
||
print data
|
||
print response
|
||
"""
|
||
headers = mapped(kwargs)
|
||
final_headers = {}
|
||
params = {}
|
||
for key in headers:
|
||
if key.startswith("response"):
|
||
params[key] = headers[key]
|
||
else:
|
||
final_headers[key] = headers[key]
|
||
headers = final_headers
|
||
|
||
params["ci-process"] = "ImageSearch"
|
||
params["action"] = "DeleteImage"
|
||
params = format_values(params)
|
||
body = format_xml(data=Body, root='Request')
|
||
path = "/" + ObjectKey
|
||
url = self._conf.uri(bucket=Bucket, path=path)
|
||
|
||
logger.info(
|
||
"cos_delete_image_search result, url=:{url} ,headers=:{headers}, params=:{params},body=:{body}".format(
|
||
url=url,
|
||
headers=headers,
|
||
params=params,
|
||
body=body))
|
||
rt = self.send_request(
|
||
method='POST',
|
||
url=url,
|
||
data=body,
|
||
auth=CosS3Auth(self._conf, path, params=params),
|
||
params=params,
|
||
headers=headers,
|
||
ci_request=False)
|
||
|
||
data = rt.content
|
||
response = dict(**rt.headers)
|
||
if 'Content-Type' in response:
|
||
if response['Content-Type'] == 'application/xml' and 'Content-Length' in response and \
|
||
response['Content-Length'] != 0:
|
||
data = xml_to_dict(rt.content)
|
||
format_dict(data, ['Response'])
|
||
elif response['Content-Type'].startswith('application/json'):
|
||
data = rt.json()
|
||
|
||
return response, data
|