媒体处理中工作流的触发方式根据文件路径以及自动触发的设置情况,一共可分为3种触发方式。本文介绍不同工作流触发方式的适用场景和要求。
触发方式对比
触发方式 | 适用场景 |
自动触发 | 文件上传到指定路径后立即按固定流程处理 |
手动触发(校验输入路径) |
|
手动触发(任意路径) | 文件路径很多无法配置成统一路径,但工作流处理流程相同,需要手动提交 |
方式一:自动触发
创建工作流,并设置为自动触发。默认自动触发。创建工作流的详细操作,请参见创建工作流。
新增文件,要求如下:
文件不是媒体处理、智能媒体服务生成的文件。详见下文。
文件路径需要符合路径匹配规则。详见下文。
文件类型符合文件扩展名匹配规则。详见下文。
使用以下OSS方法新增文件,触发执行。
OSS方法
说明
PutObject
调用PutObject接口上传文件(Object)。
PostObject
调用PostObject用于通过HTML表单上传的方式将文件(Object)上传到指定存储空间(Bucket)。
CopyObject
调用CopyObject接口拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。
CompleteMultipartUpload
在将所有数据Part都上传完成后,调用CompleteMultipartUpload接口来完成整个文件的分片上传。
PutSymlink
调用PutSymlink接口用于为OSS的目标文件(TargetObject)创建软链接(Symlink),您可以通过该软链接访问TargetObject。
方式二:手动触发(校验输入路径)
创建工作流,在新增文件之前需要调用更新媒体工作流的触发模式状态接口更改为不自动触发。创建工作流的详细操作,请参见创建工作流。
新增文件,要求如下:
文件路径需要符合路径匹配规则。详见后文。
文件类型符合文件扩展名匹配规则。详见后文。
不限定新增文件的OSS方式。
新增文件后,按需调用AddMedia接口指定文件和工作流ID,触发执行。
方式三:手动触发(任意路径)
创建工作流,在新增文件之前需要调用更新媒体工作流的触发模式状态接口更改为不自动触发。创建工作流的详细操作,请参见创建工作流。
新增文件,要求如下:
文件路径需要与媒体处理在同一区域。
不限定新增文件的OSS方式。
新增文件后,按需调用AddMedia接口指定文件和工作流ID、并将是否检查指定的工作流输入路径InputUnbind设置为不检查false(用于忽略路径匹配规则、文件扩展名匹配规则),触发执行。
文件匹配规则
非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 |