媒體處理中工作流的觸發方式根據文件路徑以及自動觸發的設置情況,一共可分為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 |