简介
本文档提供关于创建工作流的相关 API 概览以及 SDK 示例代码。
注意:
COS Node.js SDK 版本需要大于等于 v2.11.2。
API | 操作描述 |
创建工作流 |
功能说明
创建工作流。
使用示例
function createWorkflow() {// sdk引入以及初始化请参考:https://cloud.tencent.com/document/product/436/8629const config = {// 需要替换成您自己的存储桶信息Bucket: 'examplebucket-1250000000', // 存储桶,必须字段Region: 'COS_REGION', // 存储桶所在地域,必须字段 如 ap-beijing};const key = 'workflow'; // 固定值const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;const url = `https://${host}/${key}`;// 替换为自己的模板idconst snapshotTemplate = 'xxx'; // 音视频截帧模板const transcodeTemplate = 'xxx'; // 视频转码模板const animationTemplate = 'xxx'; // 视频转动图模板const concatTemplate = 'xxx'; // 音视频拼接模板const voiceSeparateTemplate = 'xxx'; // 人声分离模板const videoMontageTemplate = 'xxx'; // 精彩集锦模板const watermarkTemplate = 'xxx'; // 视频水印模板const body = COS.util.json2xml({Request: {MediaWorkflow: {Name: 'my_workflow',State: 'Active', // 创建并开启工作流Topology: {Dependencies: {Start:'Snapshot_1581665960536,Transcode_1581665960537,Animation_1581665960538,Concat_1581665960539,VoiceSeparate_1581665960551,VideoMontage_1581665960551,SDRtoHDR_1581665960553,Segment_1581665960667',Snapshot_1581665960536: 'End',Transcode_1581665960537: 'End',Animation_1581665960538: 'End',Concat_1581665960539: 'End',VideoMontage_1581665960551: 'End',SDRtoHDR_1581665960553: 'End',Segment_1581665960667: 'End',VoiceSeparate_1581665960551: 'End',},Nodes: {Start: {Type: 'Start',Input: {ObjectPrefix: 'test-',NotifyConfig: {Type: 'Url',Url: 'http://www.callback.com',Event: 'TaskFinish,WorkflowFinish',},ExtFilter: {State: 'On',Audio: 'true',Custom: 'true',CustomExts: 'mp4/mp3',AllFile: 'false',},},},Snapshot_1581665960536: {Type: 'Snapshot',Operation: {TemplateId: snapshotTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/snapshot-${number}.${Ext}',SpriteObject: 'worlflow-test/${RunId}/snapshot-sprite-${number}.jpg',},},},Transcode_1581665960537: {Type: 'Transcode',Operation: {TemplateId: transcodeTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/trans.mp4',},},},Animation_1581665960538: {Type: 'Animation',Operation: {TemplateId: animationTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/bcd.gif',},},},Concat_1581665960539: {Type: 'Concat',Operation: {TemplateId: concatTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/abc.${ext}',},},},VoiceSeparate_1581665960551: {Type: 'VoiceSeparate',Operation: {TemplateId: voiceSeparateTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/background.mp3',AuObject: 'worlflow-test/${RunId}/audio.mp3',},},},VideoMontage_1581665960551: {Type: 'VideoMontage',Operation: {TemplateId: videoMontageTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/montage.mp4',},},},SDRtoHDR_1581665960553: {Type: 'SDRtoHDR',Operation: {SDRtoHDR: {HdrMode: 'HLG',},TranscodeTemplateId: transcodeTemplate,WatermarkTemplateId: watermarkTemplate,Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/SDRtoHDR.mp4',},},},Segment_1581665960667: {Type: 'Segment',Operation: {Segment: {Format: 'mp4',Duration: '5',},Output: {Region: config.Region,Bucket: config.Bucket,Object: 'worlflow-test/${RunId}/segment-trans${Number}',},},},},},},},});cos.request({Method: 'POST', // 固定值,必须Key: key, // 必须Url: url, // 请求的url,必须Body: body, // 请求体参数,必须ContentType: 'application/xml', // 固定值,必须},function (err, data) {if (err) {// 处理请求失败console.log(err);} else {// 处理请求成功console.log(data.Response);}});}createWorkflow();
参数说明
cos.request 方法参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
Method | 固定值:POST | String | 是 |
Url | 请求 url,固定值 | String | 是 |
Key | 固定值:workflow | String | 是 |
ContentType | 固定值 | String | 是 |
Body | Object | 是 |
回调函数说明
function(err, data) { ... }