工作流的触发方式根据媒体文件来源,分为媒资库媒资来源触发和对象存储(oss)来源触发。本文介绍不同工作流触发方式的适用场景和要求。
通过媒资来源方式触发工作流
通过控制台发起工作流处理
上传视频后发起工作流
进入智能媒体服务控制台媒资库。
在音/视频列表页面,在需要发起工作流的音视频的操作列单击媒体处理。
选择用工作流处理,并指定工作流。
单击确定。
通过OpenAPI发起工作流处理
上传视频时发起工作流
调用CreateUploadMedia - 获取媒资上传地址和凭证或UploadMediaByURL - URL拉取上传接口上传音视频时,将
PostProcessConfig
参数的ProcessID
指定为上一步创建的工作流ID,则音视频上传完成后,点播系统将自动根据您指定的工作流进行处理。
上传视频后发起工作流
调用StartWorkflow - 提交工作流任务接口,将
WorkflowId
参数指定为对应工作流ID,可以立即对音视频进行工作流处理。
通过对象存储OSS方式触发工作流
通过控制台发起工作流处理
进入
页面。单击自定义页签。
选择内容来源为对象存储的工作流模板。
操作列选择测试。
通过OpenAPI发起工作流处理
触发方式
触发方式 | 适用场景 |
自动触发 | 文件上传到指定路径后立即按固定流程处理。 |
手动触发(校验输入路径) |
|
手动触发(任意路径) | 文件路径很多无法配置成统一路径,但工作流处理流程相同,需要手动提交。 |
方式一:自动触发
创建工作流,并设置为自动触发。默认自动触发。创建工作流的详细操作,请参见创建工作流。
新增文件,要求如下:
文件不是媒体处理、智能媒体服务生成的文件。详见下文。
文件路径需要符合路径匹配规则。详见下文。
文件类型符合文件扩展名匹配规则。详见下文。
使用以下OSS方法新增文件,触发执行。
OSS方法
说明
PutObject
调用PutObject接口上传文件(Object)。
PostObject
调用PostObject用于通过HTML表单上传的方式将文件(Object)上传到指定存储空间(Bucket)。
CopyObject
调用CopyObject接口拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。
CompleteMultipartUpload
在将所有数据Part都上传完成后,调用CompleteMultipartUpload接口来完成整个文件的分片上传。
PutSymlink
调用PutSymlink接口用于为OSS的目标文件(TargetObject)创建软链接(Symlink),您可以通过该软链接访问TargetObject。
方式二:手动触发(校验输入路径)
创建工作流,触发模式选择手动触发。创建工作流的详细操作,请参见创建工作流。
新增文件,要求如下:
文件路径需要符合路径匹配规则。详见后文。
文件类型符合文件扩展名匹配规则。详见后文。
不限定新增文件的OSS方式。
新增文件后,按需调用StartWorkflow接口指定文件和工作流ID,触发执行。
方式三:手动触发(任意路径)
创建工作流,触发模式选择手动触发。创建工作流的详细操作,请参见创建工作流。
新增文件,要求如下:
文件路径需要与媒体处理在同一区域。
不限定新增文件的OSS方式。
新增文件后,按需调用StartWorkflow接口指定文件和工作流ID、并将跳过检查指定的工作流输入路径SkipInputVerification设置为true(用于忽略路径匹配规则、文件扩展名匹配规则),触发执行。
文件匹配规则
非MPS、IMS生成的文件
为了避免因输入、输出路径设置不当,引起循环触发工作流执行,若输入文件的路径,是媒体处理、智能媒体服务经过转码、剪辑直接输出的文件路径,则无法触发工作流。示例如下:
假设工作流A的输出路径和工作流B的输入路径均为http://bucket.oss-cn-hangzhou.aliyuncs.com/A/,则:
如果http://bucket.oss-cn-hangzhou.aliyuncs.com/A/example.flv是工作流A的输出文件,则无法触发工作流B执行。
如果http://bucket.oss-cn-hangzhou.aliyuncs.com/A/example.flv是直接上传至该路径的文件,则可以触发工作流B执行。
路径匹配规则
判断输入文件的路径是否在工作流输入节点设置的输入路径之下,是则认为匹配,否则认为不匹配无法触发工作流。
请勿将一个工作流的输入路径配置为另外一个工作流输入路径的前缀,否则一个增量文件会触发两次工作流执行实例。例如:两个工作流的输入路径分别配置为test和test1,则当输入文件上传到test1文件夹下同样满足test前缀,因此会触发两次工作流执行实例。
假设工作流输入节点中设置的输入路径为http://bucket.oss-cn-hangzhou.aliyuncs.com/A/
(有斜杠(/)),则不同输入文件的路径的匹配结果如下表:
输入文件的路径举例 | 判断是否匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A/B/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A/B/C/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A1/example.flv | 不匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A_video01.mp4 | 不匹配 |
http://bucket.oss-cn-beijing.aliyuncs.com/A/example.flv | 不匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/example.flv | 不匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/D/example.flv | 不匹配 |
假设工作流输入节点中设置的输入路径为http://bucket.oss-cn-hangzhou.aliyuncs.com/A
(没有斜杠(/)),则不同输入文件的路径的匹配结果如下表:
输入文件的路径举例 | 判断是否匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A/B/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A/B/C/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A1/example.flv | 匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/A_video01.mp4 | 匹配 |
http://bucket.oss-cn-beijing.aliyuncs.com/A/example.flv | 不匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/example.flv | 不匹配 |
http://bucket.oss-cn-hangzhou.aliyuncs.com/D/example.flv | 不匹配 |
文件扩展名匹配规则
判断输入文件的扩展名是否在下表包含的范围内,是则认为匹配,否则认为不匹配无法触发工作流。示例如下:
假设输入文件为http://bucket.oss-cn-hangzhou.aliyuncs.com/A/B/C/test1.flv
,则扩展名为.flv,判断为匹配规则。
扩展名匹配以最后的扩展名为准。例如:输入文件为http://bucket.oss-cn-hangzhou.aliyuncs.com/A/B/C/test1.flv.mp4
,则扩展名为.mp4,判断为匹配规则。
类型 | 扩展名 |
视频 | .3gp、.asf、.avi、.dat、.dv、.flv、.f4v、.gif、.m2t、.m3u8、.m4v、.mj2、.mjpeg、.mkv、.mov、.mp4、.mpe、.mpg、.mpeg、.mts、ogg、.qt、.rm、.rmvb、.swf、.vob、.wmv、.webm、.mxf、.quicktime |
音频 | .s48、.aac、.ac3、.acm、.amr、.ape、.caf、.flac、.m4a、.mp3、.ra、.wav、.wma、.aiff |