cos-js-sdk-v5
Version:
JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)
1,013 lines (990 loc) • 35.4 kB
JavaScript
/**
* 任务和工作流demo集合
*/
// 获取任务列表
export const DescribeFileProcessJobs = {
name: '获取任务列表',
fn: function DescribeFileProcessJobs() {
const key = 'jobs'; // 固定值,必须
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
// 拉取该队列 ID 下的任务;是否必传:否
// queueId: '',
// 拉取队列类型下的任务,和 queueId 不同时生效,同时存在时 queueId 优先;是否必传:否
// queueType: '',
// 任务的 Tag;是否必传:是,比如查找视频转动图的任务
tag: 'Animation',
// 触发该任务的工作流ID;是否必传:否
workflowId: '',
// 触发该任务的存量触发任务ID;是否必传:否
// inventoryTriggerJobId: '',
// 该任务的输入文件名,暂仅支持精确匹配;是否必传:否
// inputObject: '',
// Desc 或者 Asc。默认为 Desc;是否必传:否
// orderByTime: '',
// 请求的上下文,用于翻页。上次返回的值;是否必传:否
// nextToken: '',
// 拉取的最大任务数。默认为10。最大为100;是否必传:否
size: 10,
// 拉取该状态的任务,以,分割,支持多状态:All、Submitted、Running、Success、Failed、Pause、Cancel。默认为 All;是否必传:否
states: 'All',
// 拉取创建时间大于该时间的任务。格式为:%Y-%m-%dT%H:%m:%S%z,示例:2001-01-01T00:00:00+0800;是否必传:否
// startCreationTime: '',
// 拉取创建时间小于该时间的任务。格式为:%Y-%m-%dT%H:%m:%S%z,示例:2001-01-01T23:59:59+0800;是否必传:否
// endCreationTime: '',
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 查看指定任务
export const getJobDetail = {
name: '查看指定任务',
fn: function getJobDetail() {
const jobId = 'jec8ae8943c2511ee9d4a9b3cb7a5c6xx'; // jobId: 需要查询的jobId;
const key = `jobs/${jobId}`; // jobId: 需要查询的jobId;
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 查询工作流
export const DescribeWorkflow = {
name: '查询工作流',
fn: function DescribeWorkflow() {
const key = 'workflow'; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
// 工作流 ID,以,符号分割字符串;是否必传:否
ids: '',
// 工作流名称;是否必传:否
name: '',
// 第几页;是否必传:否
pageNumber: '',
// 每页个数;是否必传:否
pageSize: '',
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 新增工作流
export const CreateWorkflow = {
name: '新增工作流',
fn: function CreateWorkflow() {
const key = 'workflow'; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
// 替换为自己的模板id
const snapshotTemplate = 'xxx'; // 音视频截帧模板
const transcodeTemplate = 'xxx'; // 视频转码模板
const animationTemplate = 'xxx'; // 视频转动图模板
const concatTemplate = 'xxx'; // 音视频拼接模板
const voiceSeparateTemplate = 'xxx'; // 人声分离模板
const videoMontageTemplate = 'xxx'; // 精彩集锦模板
const watermarkTemplate = 'xxx'; // 视频水印模板
const videoProcessTemplate = 'xxx'; // 视频增强模板
const superResolutionTemplate = '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,VideoProcess_1581665960554,SuperResolution_1581665960583,Segment_1581665960667',
Snapshot_1581665960536: 'End',
Transcode_1581665960537: 'End',
Animation_1581665960538: 'End',
Concat_1581665960539: 'End',
VideoMontage_1581665960551: 'End',
SDRtoHDR_1581665960553: 'End',
VideoProcess_1581665960554: 'End',
SuperResolution_1581665960583: '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',
},
},
},
VideoProcess_1581665960554: {
Type: 'VideoProcess',
Operation: {
TemplateId: videoProcessTemplate,
TranscodeTemplateId: transcodeTemplate,
WatermarkTemplateId: watermarkTemplate,
Output: {
Region: config.Region,
Bucket: config.Bucket,
Object: 'worlflow-test/${RunId}/videoProcess.mp4',
},
},
},
SuperResolution_1581665960583: {
Type: 'SuperResolution',
Operation: {
TemplateId: superResolutionTemplate,
TranscodeTemplateId: transcodeTemplate,
WatermarkTemplateId: watermarkTemplate,
Output: {
Region: config.Region,
Bucket: config.Bucket,
Object: 'worlflow-test/${RunId}/SuperResolution.mkv',
},
},
},
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);
}
}
);
},
};
// 更新工作流
export const UpdateWorkflow = {
name: '更新工作流',
fn: function UpdateWorkflow() {
const workflowId = 'xxx'; // 要更新的工作流id
const key = `workflow/${workflowId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
// 替换为自己的模板id
const snapshotTemplate = 'xxx'; // 音视频截帧模板
const transcodeTemplate = 'xxx'; // 视频转码模板
const animationTemplate = 'xxx'; // 视频转动图模板
const concatTemplate = 'xxx'; // 音视频拼接模板
const voiceSeparateTemplate = 'xxx'; // 人声分离模板
const videoMontageTemplate = 'xxx'; // 精彩集锦模板
const watermarkTemplate = 'xxx'; // 视频水印模板
const videoProcessTemplate = 'xxx'; // 视频增强模板
const superResolutionTemplate = 'xxx'; // 超分辨率模板
const body = COS.util.json2xml({
Request: {
MediaWorkflow: {
Name: 'my_workflow3333',
State: 'Active', // 创建并开启工作流
Topology: {
Dependencies: {
Start:
'Snapshot_1581665960536,Transcode_1581665960537,Animation_1581665960538,Concat_1581665960539,VoiceSeparate_1581665960551,VideoMontage_1581665960551,SDRtoHDR_1581665960553,VideoProcess_1581665960554,SuperResolution_1581665960583,Segment_1581665960667',
Snapshot_1581665960536: 'End',
Transcode_1581665960537: 'End',
Animation_1581665960538: 'End',
Concat_1581665960539: 'End',
VideoMontage_1581665960551: 'End',
SDRtoHDR_1581665960553: 'End',
VideoProcess_1581665960554: 'End',
SuperResolution_1581665960583: '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',
},
},
},
VideoProcess_1581665960554: {
Type: 'VideoProcess',
Operation: {
TemplateId: videoProcessTemplate,
TranscodeTemplateId: transcodeTemplate,
WatermarkTemplateId: watermarkTemplate,
Output: {
Region: config.Region,
Bucket: config.Bucket,
Object: 'worlflow-test/${RunId}/videoProcess.mp4',
},
},
},
SuperResolution_1581665960583: {
Type: 'SuperResolution',
Operation: {
TemplateId: superResolutionTemplate,
TranscodeTemplateId: transcodeTemplate,
WatermarkTemplateId: watermarkTemplate,
Output: {
Region: config.Region,
Bucket: config.Bucket,
Object: 'worlflow-test/${RunId}/SuperResolution.mkv',
},
},
},
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: 'PUT', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Body: body, // 请求体参数,必须
ContentType: 'application/xml', // 固定值,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 删除工作流
export const DeleteWorkflow = {
name: '删除工作流',
fn: function DeleteWorkflow() {
const workflowId = 'xxx'; // 要删除的工作流id
const key = `workflow/${workflowId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'DELETE', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 工作流实例列表
export const DescribeWorkflowExecutions = {
name: '工作流实例列表',
fn: function DescribeWorkflowExecutions() {
const key = 'workflowexecution'; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
workflowId: 'xxx', // 工作流 ID,非必须
// name: '', // 文件名称,非必须
// orderByTime: 'Desc', // Desc 或者 Asc。默认为 Desc,非必须
// size: '10', // 拉取的最大任务数。默认为10。最大为100,非必须
// states: 'All', // 工作流实例状态,以,分割支持多状态,非必须
// startCreationTime: '', // 拉取创建时间大于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z,非必须
// endCreationTime: '', // 拉取创建时间小于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z,非必须
// nextToken: '', // 请求的上下文,用于翻页。下一页输入 token,非必须
// jobId: '' // 批量触发工作流任务 ID,用于扫描出批量触发任务 ID 对应执行的工作流实例,非必须
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 获取工作流实例详情
export const DescribeWorkflowExecution = {
name: '获取工作流实例详情',
fn: function DescribeWorkflowExecution() {
const runId = 'xxx'; // 要查询的工作流实例 ID
const key = `workflowexecution/${runId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 手动触发工作流
export const TriggerWorkflow = {
name: '手动触发工作流',
fn: function TriggerWorkflow() {
const key = 'triggerworkflow'; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'POST', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
// 需要触发的工作流 ID;是否必传:是
workflowId: 'xxxx',
// 需要进行工作流处理的对象名称, 需要进行 url 编码;是否必传:是
object: 'test.mp4',
// 存量触发任务名称,支持中文、英文、数字、—和_,长度限制128字符,默认为空;是否必传:否
// name: '',
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 取消任务
export const CancelMediaJob = {
name: '取消任务',
fn: function CancelMediaJob() {
const jobId = 'xxxx'; // 要取消的任务id
const key = `jobs/${jobId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'PUT', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Action: 'cancel', // 固定值
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 任务列表
export const DescribeMediaJobs = {
name: '任务列表',
fn: function DescribeMediaJobs() {
const key = 'jobs'; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
tag: 'Animation', // 任务的 Tag,这里以视频转动图任务Animation为例,必须
// workflowId: '', // 触发该任务的工作流ID,非必须
// inventoryTriggerJobId: '', // 触发该任务的存量触发任务 ID,非必须
// inputObject: '', // 该任务的输入文件名,暂仅支持精确匹配,非必须
// orderByTime: 'Desc', // Desc 或者 Asc。默认为 Desc,非必须
// size: '10', // 拉取的最大任务数。默认为10。最大为100,非必须
// states: 'All', // 工作流实例状态,以,分割支持多状态,非必须
// startCreationTime: '', // 拉取创建时间大于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z,非必须
// endCreationTime: '', // 拉取创建时间小于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z,非必须
// nextToken: '', // 请求的上下文,用于翻页。下一页输入 token,非必须
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 查询模板列表
export const DescribeMediaTemplates = {
name: '查询模板列表',
fn: function DescribeMediaTemplates() {
const key = 'template'; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
tag: 'All', // 模板类型,默认值: All
// category: '', // Official(系统预设模板),Custom(自定义模板),默认值: Custom,非必须
// ids: '', // 模板 ID,以,符号分割字符串,非必须
// name: '', // 模板名称前缀,非必须
// pageNumber: '1', // 第几页,默认值:1,非必须
// pageSize: '10', // 每页个数,默认值:10,非必须
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 创建模板
export const CreateMediaTemplate = {
name: '创建模板',
fn: function CreateMediaTemplate() {
const key = 'template'; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
const body = COS.util.json2xml({
Request: {
// 模板类型:按照不同需求传递,这里以创建视频检测模板VideoTargetRec为例;是否必传:是
Tag: 'VideoTargetRec',
// 模板名称,仅支持中文、英文、数字、_、-和*,长度不超过 64;是否必传:是
Name: 'my_videoTargetRec',
// 视频目标检测 参数;是否必传:是
VideoTargetRec: {
// 是否开启人体检测,取值 true/false;是否必传:否
Body: 'true',
// 是否开启宠物检测,取值 true/false;是否必传:否
Pet: 'true',
// 是否开启车辆检测,取值 true/false;是否必传:否
Car: 'false',
},
},
});
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);
}
}
);
},
};
// 更新模版
export const UpdateMediaTemplate = {
name: '更新模版',
fn: function UpdateMediaTemplate() {
const templateId = 'xxxxxxx'; // 要更新的模板id
const key = `template/${templateId}`; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
const body = COS.util.json2xml({
Request: {
// 模板类型:按照不同需求传递,这里以创建视频检测模板VideoTargetRec为例;是否必传:是
Tag: 'VideoTargetRec',
// 模板名称,仅支持中文、英文、数字、_、-和*,长度不超过 64;是否必传:是
Name: 'my_videoTargetRec2',
// 视频目标检测 参数;是否必传:是
VideoTargetRec: {
// 是否开启人体检测,取值 true/false;是否必传:否
Body: 'false',
// 是否开启宠物检测,取值 true/false;是否必传:否
Pet: 'false',
// 是否开启车辆检测,取值 true/false;是否必传:否
Car: 'true',
},
},
});
cos.request(
{
Method: 'PUT', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Body: body, // 请求体参数,必须
ContentType: 'application/xml', // 固定值,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 删除模板
export const DeleteMediaTemplate = {
name: '删除模板',
fn: function DeleteMediaTemplate() {
const templateId = 'xxxx'; // 要删除的模板id
const key = `template/${templateId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'DELETE', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 创建批量任务
export const CreateInventoryTriggerJob = {
name: '创建批量任务',
fn: function CreateInventoryTriggerJob() {
const key = 'inventorytriggerjob'; // 固定值
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
const body = COS.util.json2xml({
Request: {
Name: 'demo', // 批量触发任务名称,支持中文、英文、数字、—和_,长度限制128字符
Type: 'Workflow', // 批量处理任务类型: Workflow,也支持设置为Job
Input: {
Prefix: 'inputtest', // Object 前缀
},
Operation: {
TimeInterval: {
Start: '2022-02-01T12:00:00+0800', // 扫描对象的上传时间,非必须
End: '2022-05-01T12:00:00+0800', // 扫描对象的上传时间,非必须
},
WorkflowIds: 'xxxx', // 触发的工作流 ID,必须
},
},
});
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);
}
}
);
},
};
// 取消批量任务
export const CancelInventoryTriggerJob = {
name: '取消批量任务',
fn: function CancelInventoryTriggerJob() {
const jobId = 'xxx'; // 要取消的批量任务id
const key = `inventorytriggerjob/${jobId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'PUT', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Action: 'cancel', // 固定值,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 查询单个批量任务
export const DescribeInventoryTriggerJob = {
name: '查询单个批量任务',
fn: function DescribeInventoryTriggerJob() {
const jobId = 'xxx'; // 要查询的批量任务id
const key = `inventorytriggerjob/${jobId}`; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};
// 批量任务列表
export const DescribeInventoryTriggerJobs = {
name: '批量任务列表',
fn: function DescribeInventoryTriggerJobs() {
const key = 'inventorytriggerjob'; // 固定格式
const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`;
const url = `https://${host}/${key}`;
cos.request(
{
Method: 'GET', // 固定值,必须
Key: key, // 必须
Url: url, // 请求的url,必须
Query: {
// nextToken: '', // 请求的上下文,用于翻页。下一页输入 token,非必须
// size: '10', // 拉取的最大任务数。默认为10。最大为100,非必须
// type: 'Workflow', // 拉取批量任务类型,工作流类型 Workflow 、任务类型 Job,非必须
// orderByTime: 'Desc', // Desc 或者 Asc。默认为 Desc,非必须
// states: 'All', // 工作流实例状态,以,分割支持多状态,非必须
// startCreationTime: '', // 拉取创建时间大于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z,非必须
// endCreationTime: '', // 拉取创建时间小于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z,非必须
// workflowId: '', // 工作流 ID,非必须
// jobId: '', // 批量触发任务 ID,非必须
// name: '', // 批量触发任务名称
},
},
function (err, data) {
if (err) {
// 处理请求失败
console.log(err);
} else {
// 处理请求成功
console.log(data.Response);
}
}
);
},
};