oss中有几百个视频需要转m3u8,发现界面没有批量提交功能,就想把表单参数找出来,用js来提交。
以下内容只对2020-02-11左右的阿里云后台有效。
1、表单界面
2、提交参数
3、参考代码
调用 sendData('目录/视频.mp4') 后
输出: ”目录/视频/视频.m3u8“
下面代码不能直接用,里面的参数:Bucket、OutputBucket、PipelineId、Location、OutputLocation、TemplateId、需要替换成自己的。
function sendData(str){
var input_file_name = str.substr(str.lastIndexOf('/') + 1).replace('.mp4','');
var input_file = str;
var output_file = str.substr(0,str.lastIndexOf('/') + 1) + input_file_name + "/" + input_file_name;
function encodeCHURI(p){
// encodeURIComponent
return encodeURI(encodeURI(p));
}
var pObj = {
Input:{ Bucket:"hzwh-video",Object:encodeCHURI(input_file),Location:"oss-cn-hangzhou"}, PipelineId:"1329180cda9f4931a73b94653afecda4",
OutputBucket:"hzwh-video",
OutputLocation:"oss-cn-hangzhou",
Outputs:[
{OutputObject:encodeCHURI(output_file),TemplateId:"S00000001-100020",Container:{Format:"m3u8"}}]
}
params_str = JSON.stringify(pObj);
let formData = new FormData();
formData.append("action",'SubmitJobs');
formData.append("params",params_str);
formData.append("product",'mts');
formData.append("region",'cn-hangzhou');
formData.append("umid",window.RISK_INFO.UMID);
formData.append("collina",RISK_INFO.GETUA());
formData.append("sec_token",ALIYUN_CONSOLE_CONFIG.SEC_TOKEN);
var str = '';
formData.forEach(function(v,k){
str += k + '=' + v ;
str += '&';
});
console.log(str);
fetch('https://mps.console.aliyun.com/data/api.json?action=SubmitJobs&t='+new Date().getTime(), {
method: 'POST',
// credentials: 'include',
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: str
}).then(function(response) {
console.log(response);
});
}
来源:oschina
链接:https://my.oschina.net/sfilyh/blog/3165202