有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

简介

本文档提供关于工作流接口的 API 概览以及 SDK 示例代码。
说明:
阅读本文档前请先打开示例代码



创建工作流

接口文档及示例函数名

API 文档
示例函数名
ci_create_workflow_image_inspect

示例代码

def ci_create_workflow_image_inspect():
# 创建异常图片检测工作流
# 工作流配置详情
body = {
# 工作流节点 固定值传入即可
'MediaWorkflow': {
# 创建的工作流名称,可自定义输入名称
# 支持中文、英文、数字、—和_,长度限制128字符
# 必传参数
'Name': 'image-inspect',
# 工作流状态,表示创建时是否开启COS上传对象事件通知
# 支持 Active / Paused
# 非必选,默认Paused 不开启
'State': 'Active',
# 工作流拓扑结构
# 必传参数
'Topology': {
# 工作流节点依赖关系
# 必传参数
'Dependencies': {
# Start 工作流开始节点,用于存储工作流回调,前缀,后缀等配置信息,只有一个开始节点
# End 工作流结束节点
# ImageInspectNode 异常图片检测节点信息
# 此示例表示 Start -> ImageInspectNode -> End 的依赖关系
'Start': 'ImageInspectNode',
'ImageInspectNode': 'End',
},
# 工作流各节点的详细配置信息
# 必传参数
'Nodes': {
# 工作流开始节点配置信息
'Start': {
# 节点类型,开始节点固定为 Start
# 必传参数
'Type': 'Start',
# 工作流的输入信息
# 必传参数
'Input': {
# Object 前缀,COS上传对象的前缀,只有当前缀匹配时,才会触发该工作流
# 如该示例,会触发以test为前缀的对象
# 必传参数
'ObjectPrefix': 'test',
# 工作流自定义回调配置信息,当配置了该项后,当工作流执行完成或工作流中的子节点中的任务执行完成,会发送回调给指定Url或tdmq
# 非必传配置
'NotifyConfig': {
# 回调类型,支持Url TDMQ两种类型
'Type': 'Url',
# 回调地址,当回调类型为Url时有效
'Url': 'http://www.callback.com',
# 回调事件 支持多种事件,以逗号分割
'Event': 'WorkflowFinish,TaskFinish',
# 回调信息格式,支持XML JSON两种格式,非必传,默认为XML
'ResultFormat': '',
# TDMQ 所属园区,当回调类型为TDMQ时有效,支持园区详见https://cloud.tencent.com/document/product/406/12667
'MqRegion': '',
# TDMQ 使用模式,当回调类型为TDMQ时有效
# Topic:主题订阅
# Queue:队列服务
'MqMode': '',
# TDMQ 主题名称,当回调类型为TDMQ时有效
'MqName': '',
},
# 文件后缀过滤器,当需要只处理部分后缀文件时,可配置此项
# 非必传配置
'ExtFilter': {
# 是否开始后缀过滤,On/Off,非必选,默认为Off
'State': '',
# 打开视频后缀限制,false/true,非必选,默认为false
'Video': '',
# 打开音频后缀限制,false/true,非必选,默认为false
'Audio': '',
# 打开图片后缀限制,false/true,非必选,默认为false
'Image': '',
# 打开 ContentType 限制,false/true,非必选,默认为false
'ContentType': '',
# 打开自定义后缀限制,false/true,非必选,默认为false
'Custom': '',
# 自定义后缀,当Custom为true时有效,多种文件后缀以/分隔,后缀个数不超过10个
'CustomExts': 'jpg/png',
# 所有文件,false/true,非必选,默认为false
'AllFile': '',
}
}
},
# 异常图片检测节点配置信息
'ImageInspectNode': {
# 节点类型,异常图片检测固定为ImageInspect
'Type': 'ImageInspect',
# 节点执行操作集合
# 非必选配置
'Operation': {
# 异常图片检测配置详情
'ImageInspect': {
# 是否开启检测到异常图片检测后自动对图片进行处理的动作,false/true,非必选,默认false
'AutoProcess': 'true',
# 在检测到为异常图片后的处理动作,有效值为:
# BackupObject:移动图片到固定目录下,目录名为abnormal_images_backup/,由后台自动创建
# SwitchObjectToPrivate:将图片权限设置为私有
# DeleteObject:删除图片
# 非必选参数,默认值为BackupObject
'ProcessType': 'BackupObject'
}
}
},
},
},
},
}
response = client.ci_create_workflow(
Bucket=bucket_name, # 桶名称
Body=body, # 工作流配置信息
ContentType='application/xml'
)
print(response)
print("workflowId is: " + response['MediaWorkflow']['WorkflowId'])
return response



更新工作流

接口文档及示例函数名

API 文档
示例函数名
ci_update_workflow
ci_update_workflow_state

示例代码

def ci_update_workflow():
# 更新工作流配置信息,仅当工作流状态为Paused时支持更新配置信息,故在更新信息前,需要将工作流状态为Paused
# 工作流配置详情
body = {
# 工作流节点 固定值传入即可
'MediaWorkflow': {
# 创建的工作流名称,可自定义输入名称
# 支持中文、英文、数字、—和_,长度限制128字符
# 必传参数
'Name': 'image-inspect',
# 工作流状态,表示创建时是否开启COS上传对象事件通知
# 支持 Active / Paused
# 非必选,默认Paused 不开启
'State': 'Active',
# 工作流拓扑结构
# 必传参数
'Topology': {
# 工作流节点依赖关系
# 必传参数
'Dependencies': {
# Start 工作流开始节点,用于存储工作流回调,前缀,后缀等配置信息,只有一个开始节点
# End 工作流结束节点
# ImageInspectNode 异常图片检测节点信息
# 此示例表示 Start -> ImageInspectNode -> End 的依赖关系
'Start': 'ImageInspectNode',
'ImageInspectNode': 'End',
},
# 工作流各节点的详细配置信息
# 必传参数
'Nodes': {
# 工作流开始节点配置信息
'Start': {
# 节点类型,开始节点固定为 Start
# 必传参数
'Type': 'Start',
# 工作流的输入信息
# 必传参数
'Input': {
# Object 前缀,COS上传对象的前缀,只有当前缀匹配时,才会触发该工作流
# 如该示例,会触发以test为前缀的对象
# 必传参数
'ObjectPrefix': 'test',
# 工作流自定义回调配置信息,当配置了该项后,当工作流执行完成或工作流中的子节点中的任务执行完成,会发送回调给指定Url或tdmq
# 非必传配置
'NotifyConfig': {
# 回调类型,支持Url TDMQ两种类型
'Type': 'Url',
# 回调地址,当回调类型为Url时有效
'Url': 'http://www.callback.com',
# 回调事件 支持多种事件,以逗号分割
'Event': 'WorkflowFinish,TaskFinish',
# 回调信息格式,支持XML JSON两种格式,非必传,默认为XML
'ResultFormat': '',
# TDMQ 所属园区,当回调类型为TDMQ时有效,支持园区详见https://cloud.tencent.com/document/product/406/12667
'MqRegion': '',
# TDMQ 使用模式,当回调类型为TDMQ时有效
# Topic:主题订阅
# Queue:队列服务
'MqMode': '',
# TDMQ 主题名称,当回调类型为TDMQ时有效
'MqName': '',
},
# 文件后缀过滤器,当需要只处理部分后缀文件时,可配置此项
# 非必传配置
'ExtFilter': {
# 是否开始后缀过滤,On/Off,非必选,默认为Off
'State': '',
# 打开视频后缀限制,false/true,非必选,默认为false
'Video': '',
# 打开音频后缀限制,false/true,非必选,默认为false
'Audio': '',
# 打开图片后缀限制,false/true,非必选,默认为false
'Image': '',
# 打开 ContentType 限制,false/true,非必选,默认为false
'ContentType': '',
# 打开自定义后缀限制,false/true,非必选,默认为false
'Custom': '',
# 自定义后缀,当Custom为true时有效,多种文件后缀以/分隔,后缀个数不超过10个
'CustomExts': 'jpg/png',
# 所有文件,false/true,非必选,默认为false
'AllFile': '',
}
}
},
# 异常图片检测节点配置信息
'ImageInspectNode': {
# 节点类型,异常图片检测固定为ImageInspect
'Type': 'ImageInspect',
# 节点执行操作集合
# 非必选配置
'Operation': {
# 异常图片检测配置详情
'ImageInspect': {
# 是否开启检测到异常图片检测后自动对图片进行处理的动作,false/true,非必选,默认false
'AutoProcess': 'true',
# 在检测到为异常图片后的处理动作,有效值为:
# BackupObject:移动图片到固定目录下,目录名为abnormal_images_backup/,由后台自动创建
# SwitchObjectToPrivate:将图片权限设置为私有
# DeleteObject:删除图片
# 非必选参数,默认值为BackupObject
'ProcessType': 'BackupObject'
}
}
},
},
},
},
}
response = client.ci_update_workflow(
Bucket=bucket_name, # 桶名称
WorkflowId='wd34ca394909xxxxxxxxxxxx4d', # 需要更新的工作流ID
Body=body, # 工作流配置信息
ContentType='application/xml'
)
print(response)
print("workflowId is: " + response['MediaWorkflow']['WorkflowId'])
return response

def ci_update_workflow_state():
# 更新工作流状态
response = client.ci_update_workflow_state(
Bucket=bucket_name, # 桶名称
WorkflowId='wd34ca3949090xxxxxxxxxx44d', # 需要更新的工作流ID
UpdateState='paused', # 需要更新至的工作流状态,支持 active 开启 / paused 关闭
ContentType='application/xml'
)
print(response)
return response



查询工作流

接口文档及示例函数名

API 文档
示例函数名
ci_get_workflow

示例代码

def ci_get_workflow():
# 查询工作流
response = client.ci_get_workflow(
Bucket=bucket_name, # 桶名称
Ids='wd34ca394909xxxxxxxxxxxx4d', # 需要查询的工作流ID,支持传入多个,以","分隔
Name='image-inspect', # 需要查询的工作流名称
# PageNumber='6', # 分页查询使用,第几页
# PageSize='3', # 分页查询使用,每页个数
ContentType='application/xml'
)
print(response)
return response



测试工作流

接口文档及示例函数名

API 文档
示例函数名
ci_trigger_workflow

示例代码

def ci_trigger_workflow():
# 测试工作流接口
response = client.ci_trigger_workflow(
Bucket=bucket_name,
WorkflowId='w1b4ffd69xxxxxxxxxxxxe5b92b1fb7ff6',
Key='test.mp4'
)
print(response)
return response



删除工作流

接口文档及示例函数名

API 文档
示例函数名
ci_delete_workflow

示例代码

def ci_delete_workflow():
# 删除指定的工作流
response = client.ci_delete_workflow(
Bucket=bucket_name, # 桶名称
WorkflowId='wd34ca39490904xxxxxxxxxx744d', # 需要删除的工作流ID
)
print(response)
return response



获取工作流实例详情列表

接口文档及示例函数名

API 文档
示例函数名
ci_list_workflowexecution

示例代码

def ci_list_workflowexecution():
# 获取工作流实例详情列表接口
response = client.ci_list_workflowexecution(
Bucket=bucket_name,
WorkflowId='w1b4ffd690xxxxxxxxxxfe5b92b1fb7ff6'
)
print(response)
return response


获取工作流实例详情

接口文档及示例函数名

API 文档
示例函数名
ci_get_workflowexecution

示例代码

def ci_get_workflowexecution():
# 获取工作流实例详情接口
response = client.ci_get_workflowexecution(
Bucket=bucket_name,
RunId='id1f94868688111xxxxxxxxxxx0ca1839'
)
print(response)
return response