/** * AI内容识别demo集合 */ // 开通AI内容识别 export const CreateAIProcessBucket = { name: '开通AI内容识别', fn: function CreateAIProcessBucket() { const key = 'ai_bucket'; // 固定值 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; cos.request( { Method: 'POST', // 固定值,必须 Key: key, // 必须 Url: url, // 请求的url,必须 }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 关闭AI内容识别 export const closeAIBucket = { name: '关闭AI内容识别', fn: function closeAIBucket() { const key = 'ai_bucket'; // 固定值 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); } } ); }, }; // 查询开通AI内容识别的桶 export const DescribeAIProcessBuckets = { name: '查询开通AI内容识别的桶', fn: function DescribeAIProcessBuckets() { const key = 'ai_bucket'; // 固定值 const host = `ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; cos.request( { Method: 'GET', // 固定值,必须 Key: key, // 必须 Url: url, // 请求的url,必须 Query: { // 地域信息,例如 ap-shanghai、ap-beijing,若查询多个地域以“,”分隔字符串,详情请参见 地域与域名;是否必传:是 // regions: '', // 存储桶名称,以“,”分隔,支持多个存储桶,精确搜索;是否必传:是 // bucketNames: '', // 存储桶名称前缀,前缀搜索;是否必传:是 // bucketName: '', // 第几页;是否必传:是 // pageNumber: 1, // 每页个数,大于0且小于等于100的整数;是否必传:是 // pageSize: 10, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 查询AI内容识别队列 export const DescribeAiProcessQueues = { name: '查询AI内容识别队列', fn: function DescribeAiProcessQueues() { const key = 'ai_queue'; // 固定值 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,以“,”符号分割字符串;是否必传:否 // queueIds: '', // Active 表示队列内的作业会被调度执行Paused 表示队列暂停,作业不再会被调度执行,队列内的所有作业状态维持在暂停状态,已经执行中的任务不受影响;是否必传:否 state: 'Active', // 第几页,默认值1;是否必传:否 // pageNumber: 0, // 每页个数,默认值10;是否必传:否 // pageSize: 0, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 更新AI内容识别队列 export const UpdateAiProcessQueue = { name: '更新AI内容识别队列', fn: function UpdateAiProcessQueue() { const queueId = 'xxx'; // 队列id const key = `ai_queue/${queueId}`; // 固定格式 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; const body = COS.util.json2xml({ Request: { // 队列名称,仅支持中文、英文、数字、_、-和*,长度不超过 128;是否必传:是 Name: 'my_queue', // Active 表示队列内的作业会被调度执行Paused 表示队列暂停,作业不再会被调度执行,队列内的所有作业状态维持在暂停状态,已经执行中的任务不受影响;是否必传:是 State: 'Active', // 回调配置;是否必传:是 NotifyConfig: { // 回调开关OffOn;是否必传:否 State: 'On', // 回调事件TaskFinish:任务完成WorkflowFinish:工作流完成;是否必传:否 Event: 'TaskFinish', // 回调格式XMLJSON;是否必传:否 // ResultFormat: '', // 回调类型UrlTDMQ;是否必传:否 Type: 'Url', // 回调地址,不能为内网地址。;是否必传:否 Url: 'http://example.com', // TDMQ 使用模式Topic:主题订阅Queue: 队列服务;是否必传:否 // MqMode: '', // TDMQ 所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港);是否必传:否 // MqRegion: '', // TDMQ 主题名称;是否必传:否 // MqName: '', }, }, }); 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 getImageLabel = { name: '识别图片标签', fn: function getImageLabel() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/dog.jpeg', // 与detect-url二选一传递 Query: { // 固定值detect-label;是否必传:是 'ci-process': 'detect-label', // 本次调用支持的识别场景,可选值如下:web,针对网络图片优化;camera,针对手机摄像头拍摄图片优化;album,针对手机相册、网盘产品优化;news,针对新闻、资讯、广电等行业优化;如果不传此参数,则默认为camera。支持多场景(scenes)一起检测,以,分隔。例如,使用 scenes=web,camera 即对一张图片使用两个模型同时检测,输出两套识别结果。;是否必传:否 // scenes: '', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg;是否必传:否 // 'detect-url': '', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 二维码识别(云上图片识别) export const recognitionQRcode = { name: '二维码识别(云上图片识别)', fn: function recognitionQRcode() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/二维码.png', // 必须 Query: { // 万象处理能力,二维码识别固定为 QRcode;是否必传:是 'ci-process': 'QRcode', // 二维码覆盖功能,将对识别出的二维码覆盖上马赛克。取值为0或1。0表示不开启二维码覆盖,1表示开启二维码覆盖,默认值0;是否必传:否 cover: 0, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 二维码识别(上传时识别) export const identifyQrcode_put = { name: '二维码识别(上传时识别)', fn: function identifyQrcode_put() { util.selectLocalFile(function (files) { const file = files && files[0]; if (!file) return; cos.putObject( { Bucket: config.Bucket, // Bucket 格式:test-1250000000 Region: config.Region, Key: '1/上传二维码.png', Body: file, Headers: { // 通过 imageMogr2 接口使用图片缩放功能:指定图片宽度为 200,宽度等比压缩 'Pic-Operations': '{"is_pic_info": 1, "rules": [{"fileid":"test.jpg","rule":" QRcode/cover/0"}]}', }, onProgress: function (progressData) { console.log('onProgress', JSON.stringify(progressData)); }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }); }, }; // 二维码识别(下载时识别) export const identifyQrcode_get = { name: '二维码识别(下载时识别)', fn: function identifyQrcode_get() { const key = '1/二维码图片.png'; cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', Key: key, Query: { 'ci-process': 'QRcode', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 二维码生成 export const createCRcode = { name: '二维码生成', fn: function createCRcode() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', Query: { 'ci-process': 'qrcode-generate', // 必须,对象存储处理能力,二维码生成参数为 qrcode-generate 'qrcode-content': '二维码文案', // 必须,可识别的二维码文本信息 // mode: 0, // 非必须,生成的二维码类型,可选值:0或1。0为二维码,1为条形码,默认值为0 width: 200, //必须,指定生成的二维码或条形码的宽度,高度会进行等比压缩 }, }, function (err, data) { if (!err) { // 获得二维码base64 const imgBase64 = data.Response.ResultImage; // 比如可拼接前缀直接展示在img里 // document.querySelector('#img').src = 'data:image/jpg;base64,' + imgBase64; } } ); }, }; // 图片文字识别 export const cOSOCR = { name: '图片文字识别', fn: function cOSOCR() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/0.jpg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,图片文字识别固定为OCR;是否必传:是 'ci-process': 'OCR', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg;是否必传:否 // 'detect-url': '', // ocr的识别类型,有效值为general,accurate,efficient,fast,handwriting。general表示通用印刷体识别;accurate表示印刷体高精度版;efficient表示印刷体精简版;fast表示印刷体高速版;handwriting表示手写体识别。默认值为general。;是否必传:否 type: 'general', // type值为general时有效,表示识别语言类型。支持自动识别语言类型,同时支持自选语言种类,默认中英文混合(zh),各种语言均支持与英文混合的文字识别。可选值:zh:中英混合zh_rare:支持英文、数字、中文生僻字、繁体字,特殊符号等auto:自动mix:混合语种jap:日语kor:韩语spa:西班牙语fre:法语ger:德语por:葡萄牙语vie:越语may:马来语rus:俄语ita:意大利语hol:荷兰语swe:瑞典语fin:芬兰语dan:丹麦语nor:挪威语hun:匈牙利语tha:泰语hi:印地语ara:阿拉伯语;是否必传:否 'language-type': 'zh', // type值为general,fast时有效,表示是否开启PDF识别,有效值为true和false,默认值为false,开启后可同时支持图片和PDF的识别。;是否必传:否 ispdf: false, // type值为general,fast时有效,表示需要识别的PDF页面的对应页码,仅支持PDF单页识别,当上传文件为PDF且ispdf参数值为true时有效,默认值为1。;是否必传:否 // 'pdf-pagenumber': 0, // type值为general,accurate时有效,表示识别后是否需要返回单字信息,有效值为true和false,默认为false;是否必传:否 isword: false, // type值为handwriting时有效,表示是否开启单字的四点定位坐标输出,有效值为true和false,默认值为false。;是否必传:否 'enable-word-polygon': false, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 车辆识别 export const aIDetectCar = { name: '车辆识别', fn: function aIDetectCar() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/car.png', // 对象文件名,必须,例如:folder/document.jpg Query: { // 数据万象处理能力,车辆识别固定为 DetectCar;是否必传:是 'ci-process': 'DetectCar', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 宠物识别 export const aIDetectPet = { name: '宠物识别', fn: function aIDetectPet() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/dog.jpeg', // 对象文件名,必须,例如:folder/document.jpg须 Query: { // 数据万象处理能力,宠物识别固定为 detect-pet;是否必传:是 'ci-process': 'detect-pet', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 创建视频目标检测模板 export const postVideoTargetTemplete = { name: '创建视频目标检测模板', fn: function postVideoTargetTemplete() { 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 updateVideoTargetTemplete = { name: '更新视频目标检测模板', fn: function updateVideoTargetTemplete() { 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 postVideoTargetRec = { name: '提交一个视频目标检测任务', fn: function postVideoTargetRec() { const key = 'jobs'; // 固定值 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; const body = COS.util.json2xml({ Request: { // 创建任务的 Tag:VideoTargetRec;是否必传:是 Tag: 'VideoTargetRec', // 操作规则;是否必传:是 Operation: { // 视频目标检测模板 ID;与VideoTargetRec二选一传递 TemplateId: 'xxxx', // 视频目标检测参数, 同创建视频目标检测模板接口中的 Request.VideoTargetRec;与TemplateId二选一传递 // VideoTargetRec: { // 是否开启人体检测,取值 true/false;是否必传:否 // Body: '', // 是否开启宠物检测,取值 true/false;是否必传:否 // Pet: '', // 是否开启车辆检测,取值 true/false;是否必传:否 // Car: '', // }, // 透传用户信息, 可打印的 ASCII 码, 长度不超过1024;是否必传:否 // UserData: '', // 任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0;是否必传:否 // JobLevel: '', }, // 待操作的媒体信息;是否必传:是 Input: { // 媒体文件名;是否必传:否 Object: 'ci/test.mp4', }, // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式;是否必传:否 // CallBackFormat: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型;是否必传:否 // CallBackType: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调;是否必传:否 // CallBack: '', // 任务回调TDMQ配置,当 CallBackType 为 TDMQ 时必填。详情请参见 CallBackMqConfig;是否必传:否 // CallBackMqConfig: { // 消息队列所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港);是否必传:是 // MqRegion: '', // 消息队列使用模式,默认 Queue :主题订阅:Topic队列服务: Queue;是否必传:是 // MqMode: '', // TDMQ 主题名称;是否必传:是 // MqName: '', // }, }, }); 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 postWordsGeneralize = { name: '提交词性分析任务', fn: function postWordsGeneralize() { const key = 'jobs'; // 固定值 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; const body = COS.util.json2xml({ Request: { // 创建任务的 Tag:WordsGeneralize;是否必传:是 Tag: 'WordsGeneralize', // 待操作的对象信息;是否必传:是 Input: { // 文件路径;是否必传:是 Object: 'ci/test.txt', }, // 操作规则;是否必传:是 Operation: { // 指定分词参数;是否必传:是 WordsGeneralize: { // ner 方式,支持 NerBasic 和 DL,默认值 DL;是否必传:否 NerMethod: 'DL', // 分词粒度,支持 SegBasic 和 MIX,默认值 MIX;是否必传:否 SegMethod: 'MIX', }, // 透传用户信息,可打印的 ASCII 码,长度不超过1024;是否必传:否 // UserData: '', // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0;是否必传:否 // JobLevel: '', }, // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式;是否必传:否 // CallBackFormat: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型;是否必传:否 // CallBackType: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调;是否必传:否 // CallBack: '', // 任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig;是否必传:否 // CallBackMqConfig: { // 消息队列所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港);是否必传:是 // MqRegion: '', // 消息队列使用模式,默认 Queue :主题订阅:Topic队列服务: Queue;是否必传:是 // MqMode: '', // TDMQ 主题名称;是否必传:是 // MqName: '', // }, }, }); 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 LivenessRecognition = { name: '活体人脸核身', fn: function LivenessRecognition() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/tf.mp4', // 必须 Query: { // 数据万象处理能力,人脸核身固定为 LivenessRecognition;是否必传:是 'ci-process': 'LivenessRecognition', // 身份证号;是否必传:是 IdCard: '610321199411040019', // 姓名。中文请使用 UTF-8编码;是否必传:是 Name: '田丰', // 活体检测类型,取值:LIP/ACTION/SILENTLIP 为数字模式,ACTION 为动作模式,SILENT 为静默模式,三种模式选择一种传入;是否必传:是 LivenessType: 'SILENT', // 数字模式传参:数字验证码(1234),需先调用接口获取数字验证码动作模式传参:传动作顺序(2,1 or 1,2),需先调用接口获取动作顺序静默模式传参:空;是否必传:否 ValidateData: '', // 需要返回多张最佳截图,取值范围1 - 10,不设置默认返回一张最佳截图;是否必传:否 BestFrameNum: 1, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 获取动作顺序 export const GetActionSequence = { name: '获取动作顺序', fn: function GetActionSequence() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Query: { // 数据万象处理能力,获取动作顺序固定为 GetActionSequence;是否必传:是 'ci-process': 'GetActionSequence', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 获取数字验证码 export const GetLiveCode = { name: '获取数字验证码', fn: function GetLiveCode() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Query: { // 数据万象处理能力,获取数字验证码固定为 GetLiveCode;是否必传:是 'ci-process': 'GetLiveCode', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 卡证识别 export const aILicenseRec = { name: '卡证识别', fn: function aILicenseRec() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/card.jpeg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,卡证识别固定为AILicenseRec;是否必传:是 'ci-process': 'AILicenseRec', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg;是否必传:否 'detect-url': '', // 卡证识别类型,有效值为IDCard,DriverLicense。
IDCard表示身份证;DriverLicense表示驾驶证,默认:DriverLicense;是否必传:是 CardType: 'IDCard', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 开通以图搜图 export const CreateImageSearchBucket = { name: '开通以图搜图', fn: function CreateImageSearchBucket() { const key = 'CreateImageSearchBucket'; // 固定值 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; const body = COS.util.json2xml({ Request: { // 图库容量限制;是否必传:是 MaxCapacity: 1000, // 图库访问限制,默认10;是否必传:否 MaxQps: 10, }, }); 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 goodsMatting = { name: '商品抠图', fn: function goodsMatting() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/goods.jpeg', // 与detect-url二选一传递 Query: { // ;是否必传:是 'ci-process': 'GoodsMatting', // ;是否必传:否 // 'detect-url': '', }, RawBody: true, DataType: 'blob', }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 添加图库图片 export const AddImage = { name: '添加图库图片', fn: function AddImage() { const body = COS.util.json2xml({ Request: { // 物品 ID,最多支持64个字符。若 EntityId 已存在,则对其追加图片;是否必传:是 EntityId: '123456', // 用户自定义的内容,最多支持4096个字符,查询时原样带回;是否必传:否 CustomContent: '小商品', // 图片自定义标签,最多不超过10个,json 字符串,格式为 key:value (例 key1>=1 key1>='aa' )对;是否必传:否 // Tags: '', }, }); cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'POST', // 固定值,必须 Key: 'ci/goods.jpeg', // 必须 Query: { // 固定值:ImageSearch;是否必传:是 'ci-process': 'ImageSearch', // 固定值:AddImage;是否必传:是 action: 'AddImage', }, Body: body, // 请求体参数,必须 ContentType: 'application/xml', // 固定值,必须 }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 删除图库图片 export const DeleteImage = { name: '删除图库图片', fn: function DeleteImage() { const body = COS.util.json2xml({ Request: { // 物品 ID;是否必传:是 EntityId: '', }, }); cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'POST', // 固定值,必须 Key: key, // 必须 Body: body, // 请求体参数,必须 ContentType: 'application/xml', // 固定值,必须 }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 检索图片 export const SearchImage = { name: '检索图片', fn: function SearchImage() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/goods.jpeg', // 必须 Query: { 'ci-process': 'ImageSearch', action: 'SearchImage', // 出参 Score 中,只有超过 MatchThreshold 值的结果才会返回。默认为0;是否必传:否 MatchThreshold: 0, // 起始序号,默认值为0;是否必传:否 Offset: 0, // 返回数量,默认值为10,最大值为100;是否必传:否 Limit: 0, // 针对入库时提交的 Tags 信息进行条件过滤。支持>、>=、<、<=、=、!=,多个条件之间支持 AND 和 OR 进行连接;是否必传:否 Filter: '', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 提交内容翻译任务 export const postTranslation = { name: '提交内容翻译任务', fn: function postTranslation() { const key = 'jobs'; // 固定值 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; const body = COS.util.json2xml({ Request: { // 创建任务的 Tag:Translation;是否必传:是 Tag: 'Translation', // 待操作的对象信息;是否必传:是 Input: { // 源文档文件名单文件(docx/xlsx/html/markdown/txt):不超过800万字符有页数的(pdf/pptx):不超过300页文本文件(txt):不超过10MB二进制文件(pdf/docx/pptx/xlsx):不超过60MB图片文件(jpg/jpeg/png/webp):不超过10MB;是否必传:是 Object: 'ci/test.txt', // 文档语言类型zh:简体中文zh-hk:繁体中文zh-tw:繁体中文zh-tr:繁体中文en:英语ar:阿拉伯语de:德语es:西班牙语fr:法语id:印尼语it:意大利语ja:日语pt:葡萄牙语ru:俄语ko:韩语km:高棉语lo:老挝语;是否必传:是 Lang: 'zh-hk', // 文档类型pdfdocxpptxxlsxtxtxmlhtml:只能翻译 HTML 里的文本节点,需要通过 JS 动态加载的不进行翻译markdownjpgjpegpngwebp;是否必传:是 Type: 'txt', // 原始文档类型仅在 Type=pdf/jpg/jpeg/png/webp 时使用,当值为pdf时,仅支持 docx、pptx当值为jpg/jpeg/png/webp时,仅支持txt;是否必传:否 // BasicType: '', }, // 操作规则;是否必传:是 Operation: { // 翻译参数;是否必传:是 Translation: { // 目标语言类型源语言类型为 zh/zh-hk/zh-tw/zh-tr 时支持:en、ar、de、es、fr、id、it、ja、it、ru、ko、km、lo、pt源语言类型为 en 时支持:zh、zh-hk、zh-tw、zh-tr、ar、de、es、fr、id、it、ja、it、ru、ko、km、lo、pt其他类型时支持:zh、zh-hk、zh-tw、zh-tr、en;是否必传:是 Lang: 'en', // 文档类型,源文件类型与目标文件类型映射关系如下:docx:docxpptx:pptxxlsx:xlsxtxt:txtxml:xmlhtml:htmlmarkdown:markdownpdf:pdf、docxpng:txtjpg:txtjpeg:txtwebp:txt;是否必传:是 Type: 'txt', }, // 结果输出地址,当NoNeedOutput为true时非必选;是否必传:否 Output: { // 存储桶的地域;是否必传:是 Region: config.Region, // 存储结果的存储桶;是否必传:是 Bucket: config.Bucket, // 输出结果的文件名;是否必传:是 Object: 'ci/trans_test.txt', }, // 透传用户信息,可打印的 ASCII 码,长度不超过1024;是否必传:否 // UserData: '', // 任务优先级,级别限制:0 、1 、2 。级别越大任务优先级越高,默认为0;是否必传:否 // JobLevel: '', // 仅输出结果,不生成结果文件。取值:true/false。该参数原文档类型为图片时有效。默认值 false;是否必传:否 // NoNeedOutput: '', }, // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式;是否必传:否 // CallBackFormat: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型;是否必传:否 // CallBackType: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调;是否必传:否 // CallBack: '', // 任务回调TDMQ配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig;是否必传:否 // CallBackMqConfig: { // 消息队列所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港);是否必传:是 // MqRegion: '', // 消息队列使用模式,默认 Queue :主题订阅:Topic队列服务: Queue;是否必传:是 // MqMode: '', // TDMQ 主题名称;是否必传:是 // MqName: '', // }, }, }); 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 aIDetectFace = { name: '人脸检测', fn: function aIDetectFace() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/1.jpg', // 必须 Query: { // 数据万象处理能力,人脸特效固定为 DetectFace。;是否必传:是 'ci-process': 'DetectFace', // 最多处理的人脸数目。默认值为1(仅检测图片中面积最大的那张人脸),最大���为120。此参数用于控制处理待检测图片中的人脸个数,值越小,处理速度越快。;是否必传:否 'max-face-num': 1, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 人脸美颜 export const FaceBeautify = { name: '人脸美颜', fn: function aIFaceEffect() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/tom.jpeg', // 对象文件名,例如:folder/document.jpg,与detect-url二选一传递 Query: { // 万象处理能力,人脸特效固定为face-effect;是否必传:是 'ci-process': 'face-effect', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。;是否必传:否 // 'detect-url': '', // 人脸特效类型,人脸美颜:face-beautify;人脸性别转换:face-gender-transformation;人脸年龄变化:face-age-transformation;人像分割:face-segmentation;是否必传:是 type: 'face-beautify', // type为face-beautify时生效,美白程度,取值范围[0,100]。0不美白,100代表最高程度。默认值30;是否必传:否 whitening: 50, // type为face-beautify时生效,磨皮程度,取值范围[0,100]。0不磨皮,100代表最高程度。默认值10;是否必传:否 smoothing: 50, // type为face-beautify时生效,瘦脸程度,取值范围[0,100]。0不瘦脸,100代表最高程度。默认值70;是否必传:否 faceLifting: 50, // type为face-beautify时生效,大眼程度,取值范围[0,100]。0不大眼,100代表最高程度。默认值70;是否必传:否 eyeEnlarging: 50, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 人脸性别转换 export const FaceGenderTransformation = { name: '人脸性别转换', fn: function FaceGenderTransformation() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/tom.jpeg', // 对象文件名,例如:folder/document.jpg,与detect-url二选一传递 Query: { // 万象处理能力,人脸特效固定为face-effect;是否必传:是 'ci-process': 'face-effect', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。;是否必传:否 // 'detect-url': '', // 人脸特效类型,人脸美颜:face-beautify;人脸性别转换:face-gender-transformation;人脸年龄变化:face-age-transformation;人像分割:face-segmentation;是否必传:是 type: 'face-gender-transformation', // type为face-gender-transformation时生效,选择转换方向,0:男变女,1:女变男。无默认值,为必选项。限制:仅对图片中面积最大的人脸进行转换。;是否必传:否 gender: 0, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 人脸年龄变化 export const FaceAgeTransformation = { name: '人脸年龄变化', fn: function FaceAgeTransformation() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/tom.jpeg', // 对象文件名,例如:folder/document.jpg,与detect-url二选一传递 Query: { // 万象处理能力,人脸特效固定为face-effect;是否必传:是 'ci-process': 'face-effect', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。;是否必传:否 // 'detect-url': '', // 人脸特效类型,人脸美颜:face-beautify;人脸性别转换:face-gender-transformation;人脸年龄变化:face-age-transformation;人像分割:face-segmentation;是否必传:是 type: 'face-age-transformation', // type 为 face-age-transformation 时生效,变化到的人脸年龄,范围为[10,80],无默认值。注意:仅对图片中面积最大的人脸进行转换 age: 40, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 人像分割 export const FaceSegmentation = { name: '人像分割', fn: function FaceSegmentation() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/tom.jpeg', // 对象文件名,例如:folder/document.jpg,与detect-url二选一传递 Query: { // 万象处理能力,人脸特效固定为face-effect;是否必传:是 'ci-process': 'face-effect', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。;是否必传:否 // 'detect-url': '', // 人脸特效类型,人脸美颜:face-beautify;人脸性别转换:face-gender-transformation;人脸年龄变化:face-age-transformation;人像分割:face-segmentation;是否必传:是 type: 'face-segmentation', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 人体识别 export const aIBodyRecognition = { name: '人体识别', fn: function aIBodyRecognition() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/dog.jpeg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,人体识别固定为AIBodyRecognition;是否必传:是 'ci-process': 'AIBodyRecognition', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg;是否必传:否 // 'detect-url': '', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 身份证识别 export const IDCardOCR = { name: '身份证识别', fn: function IDCardOCR() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/card.jpeg', // 必须 Query: { // 数据万象处理能力,身份证识别固定为 IDCardOCR;是否必传:是 'ci-process': 'IDCardOCR', // FRONT:身份证有照片的一面(人像面)BACK:身份证有国徽的一面(国徽面)该参数如果不填,将为您自动判断身份证正反面;是否必传:否 CardSide: 'FRONT', // 以下可选字段均为 bool 类型,默认 false:CropIdCard,身份证照片裁剪(去掉证件外多余的边缘、自动矫正拍摄角度)CropPortrait,人像照片裁剪(自动抠取身份证头像区域)CopyWarn,复印件告警BorderCheckWarn,边框和框内遮挡告警ReshootWarn,翻拍告警DetectPsWarn,PS 检测告警TempIdWarn,临时身份证告警InvalidDateWarn,身份证有效日期不合法告警Quality,图片质量分数(评价图片的模糊程度)MultiCardDetect,是否开启多卡证检测参数设置方式参考:Config = {"CropIdCard":true,"CropPortrait":true};是否必传:否 // Config: {}, }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 实时文字翻译 export const autoTranslationBlock = { name: '实时文字翻译', fn: function autoTranslationBlock() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Query: { // 数据万象处理能力,文本块翻译固定为 AutoTranslationBlock。;是否必传:是 'ci-process': 'AutoTranslationBlock', // 待翻译的文本;是否必传:是 InputText: '我是张三', // 输入语言,如 "zh";是否必传:是 SourceLang: 'zh', // 输出语言,如 "en";是否必传:是 TargetLang: 'en', // 文本所属业务领域,如: "ecommerce", //缺省值为 general;是否必传:否 // TextDomain: '', // 文本类型,如: "title", //缺省值为 sentence;是否必传:否 // TextStyle: '', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 提交一个视频人像抠图任务 export const postSegmentVideoBody = { name: '提交一个视频人像抠图任务', fn: function postSegmentVideoBody() { const key = 'jobs'; // 固定值 const host = `${config.Bucket}.ci.${config.Region}.myqcloud.com`; const url = `https://${host}/${key}`; const body = COS.util.json2xml({ Request: { // 创建任务的 Tag:SegmentVideoBody;是否必传:是 Tag: 'SegmentVideoBody', // 待操作的对象信息;是否必传:是 Input: { // 文件路径;是否必传:是 Object: 'ci/tf.mp4', }, // 操作规则;是否必传:是 Operation: { // 视频人像抠图配置;是否必传:否 SegmentVideoBody: { // 抠图模式 Mask:输出alpha通道结果Foreground:输出前景视频Combination:输出抠图后的前景与自定义背景合成后的视频默认值:Mask;是否必传:否 Mode: 'Mask', // 抠图类型HumanSeg:人像抠图GreenScreenSeg:绿幕抠图SolidColorSeg:纯色背景抠图默认值:HumanSeg;是否必传:否 // SegmentType: '', // mode为 Foreground 时参数生效,背景颜色为红色,取值范围 [0, 255], 默认值为 0;是否必传:否 // BackgroundRed: '', // mode为 Foreground 时参数生效,背景颜色为绿色,取值范围 [0, 255],默认值为 0;是否必传:否 // BackgroundGreen: '', // mode为 Foreground 时参数生效,背景颜色为蓝色,取值范围 [0, 255],默认值为 0;是否必传:否 // BackgroundBlue: '', // 传入背景文件。mode为 Combination 时,此参数必填,背景文件需与源文件在同存储桶下;是否必传:否 // BackgroundLogoUrl: '', // 调整抠图的边缘位置,取值范围为[0, 255],默认值为 0;是否必传:否 // BinaryThreshold: '', // 纯色背景抠图的背景色(红), 当 SegmentType 为 SolidColorSeg 生效,取值范围为 [0, 255],默认值为 0;是否必传:否 // RemoveRed: '', // 纯色背景抠图的背景色(绿), 当 SegmentType 为 SolidColorSeg 生效,取值范围为 [0, 255],默认值为 0;是否必传:否 // RemoveGreen: '', // 纯色背景抠图的背景色(蓝), 当 SegmentType 为 SolidColorSeg 生效,取���范围为 [0, 255],默认值为 0;是否必传:否 // RemoveBlue: '', }, // 结果输出配置;是否必传:是 Output: { // 存储桶的地域;是否必传:是 Region: config.Region, // 存储结果的存储桶;是否必传:是 Bucket: config.Bucket, // 输出结果的文件名;是否必传:是 Object: 'ci/ss.mp4', }, // 透传用户信息,可打印的 ASCII 码,长度不超过1024;是否必传:否 // UserData: '', // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0;是否必传:否 // JobLevel: '', }, // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式;是否必传:否 // CallBackFormat: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型;是否必传:否 // CallBackType: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调;是否必传:否 // CallBack: '', // 任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填。详情见 CallBackMqConfig;是否必传:否 // CallBackMqConfig: { // 消息队列所属园区,目前支持园区 sh(上海)、bj(北京)、gz(广州)、cd(成都)、hk(中国香港);是否必传:是 // MqRegion: '', // 消息队列使用模式,默认 Queue :主题订阅:Topic队列服务: Queue;是否必传:是 // MqMode: '', // TDMQ 主题名称;是否必传:是 // MqName: '', // }, }, }); 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 aIImageColoring = { name: '图片上色', fn: function aIImageColoring() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/1.jpg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,图片上色参固定为AIImageColoring。;是否必传:是 'ci-process': 'AIImageColoring', // 待上色图片url,需要进行urlencode,与ObjectKey二选其一,如果同时存在,则默认以ObjectKey为准;是否必传:否 // 'detect-url': '', }, RawBody: true, DataType: 'blob', }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 图片质量评分 export const assessQuality = { name: '图片质量评分', fn: function assessQuality() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/dog.jpeg', // 必须 Query: { // 数据万象处理能力,图像质量检测固定为 AssessQuality。;是否必传:是 'ci-process': 'AssessQuality', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data.Response); } } ); }, }; // 图像超分 export const aISuperResolution = { name: '图像超分', fn: function aISuperResolution() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/test.jpeg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,只能裁剪参固定为AISuperResolution。;是否必传:否 'ci-process': 'AISuperResolution', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey,detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg。;是否必传:否 // 'detect-url': '', }, RawBody: true, DataType: 'blob', }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 图像修复 export const imageRepair = { name: '图像修复', fn: function imageRepair() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/card.jpeg', // 必须 Query: { // 固定值:ImageRepair;是否必传:是 'ci-process': 'ImageRepair', // 遮罩(白色区域为需要去除的水印位置)图片地址,私有图片需携带签名,需要经过 URL 安全的 Base64 编码 // 比如图片url为 http://test.com/test.jpg MaskPic: COS.util.encodeBase64('http://test.com/test.jpg', true), }, RawBody: true, DataType: 'blob', }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 图像增强 export const aIEnhanceImage = { name: '图像增强', fn: function aIEnhanceImage() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/1.jpg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,只能裁剪参固定为 AIEnhanceImage。;是否必传:是 'ci-process': 'AIEnhanceImage', // 去噪强度值,取值范围为 0 - 5 之间的整数,值为 0 时不进行去噪操作,默认值为3。;是否必传:否 denoise: 0, // 锐化强度值,取值范围为 0 - 5 之间的整数,值为 0 时不进行锐化操作,默认值为3。;是否必传:否 sharpen: 0, // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了detect-url 时,后台会处理 detect-url链接,无需再填写 ObjectKey ,detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为 http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg;是否必传:否 // 'detect-url': '', // ;是否必传:否 'ignore-error': 0, }, RawBody: true, DataType: 'blob', }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 图像智能裁剪 export const aIImageCrop = { name: '图像智能裁剪', fn: function aIImageCrop() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/dog.jpeg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,智能裁剪固定为AIImageCrop;是否必传:是 'ci-process': 'AIImageCrop', // 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg;是否必传:否 // 'detect-url': '', // 需要裁剪区域的宽度,与height共同组成所需裁剪的图片宽高比例;输入数字请大于0、小于图片宽度的像素值;是否必传:是 width: 0, // 需要裁剪区域的高度,与width共同组成所需裁剪的图片宽高比例;输入数字请大于0、小于图片高度的像素值;width : height建议取值在[1, 2.5]之间,超过这个范围可能会影响效果;是否必传:是 height: 0, // 是否严格按照 width 和 height 的值进行输出。取值为0时,宽高比例(width : height)会简化为最简分数,即如果width输入10、height输入20,会简化为1:2;取值为1时,输出图片的宽度等于width,高度等于height;默认值为0;是否必传:否 fixed: 0, // 当此参数为1时,针对文件过大等导致处理失败的场景,会直接返回原图而不报错;是否必传:否 'ignore-error': 0, }, RawBody: true, DataType: 'blob', }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // 游戏场景识别 export const aIGameRec = { name: '游戏场景识别', fn: function aIGameRec() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/game.jpeg', // 与detect-url二选一传递 Query: { // 数据万象处理能力,游戏场景识别固定为 AIGameRec;是否必传:是 'ci-process': 'AIGameRec', // 您可以通过填写 detect-url 对任意公网可访问的图片进行游戏场景识别。不填写 detect-url 时,后台会默认处理 objectkey ;填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 objectkey , detect-url 示例:http://www.example.com/abc.jpg。;是否必传:是 // 'detect-url': '', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, }; // Logo 识别 export const recognizeLogo = { name: 'Logo 识别', fn: function recognizeLogo() { cos.request( { Bucket: config.Bucket, Region: config.Region, Method: 'GET', // 固定值,必须 Key: 'ci/logo.png', // 与detect-url二选一传递 Query: { // 数据万象处理能力,Logo识别固定为RecognizeLogo;是否必传:是 'ci-process': 'RecognizeLogo', // 待检查图片url,需要进行urlencode;是否必传:是 // 'detect-url': '', }, }, function (err, data) { if (err) { // 处理请求失败 console.log(err); } else { // 处理请求成功 console.log(data); } } ); }, };