通过无服务器API构建图片鉴黄Web应用
引导式阅读
Node.js
通过无服务器API构建图片鉴黄Web应用
作者
C***
上架时间
2021-07-02 08:10:09

创建函数

1、进入函数创建页面,点击创建函数
2、参数说明

  • 标记①:函数名称,自定义
  • 标记②:所属应用,按照页面提示填入
  • 标记③:选择iam委托(如何创建委托见下方)
  • 标记④:运行时语言,按照图示选择
  • 标记⑤:函数执行入口,默认为index.handler,不做修改即可
  • 标记⑥:源代码,请复制以下代码
const https = require('https'); var constructPayload = function(event) { if (event.httpMethod != "POST") { return { "image": "", "categories" : ["porn"], "url": body.url } } var bodyStr = new Buffer(event.body, 'base64').toString('ascii') var body = JSON.parse(bodyStr) if (body.url != null && body.url.trim() != "") { return { "image": "", "categories" : ["porn"], "url": body.url }; } else { return { "image": body.image, "categories" : ["porn"], "url": "" }; } } exports.handler = function (event, context, callback) { new Promise(function(resolve, reject) { var token = context.getToken(); const options = { hostname: 'moderation.cn-north-4.myhuaweicloud.com', port: 443, path: '/v1.0/moderation/image', method: 'POST', headers: { 'Content-Type': 'application/json;charset=utf8', 'X-Auth-Token': token } }; var payload = constructPayload(event) console.log("Sending request to AIS...") const req = https.request(options, (res) => { var status = res.statusCode console.log("status:", status) res.on('data', (d) => { resolve(d.toString()); }); }); req.on('error', (e) => { console.error(e); }); req.write(JSON.stringify(payload)); req.end(); }).then(function(value) { var result = { body: value, headers: { "Content-Type":"application/json", "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type,Accept", "Access-Control-Allow-Methods": "GET,POST,PUT,DELETE" }, statusCode: 200, isBase64Encoded: false }; callback(null, result); }); }

创建IAM委托

1、点击上一步骤里标注③的位置,进入创建IAM委托页面
2、点击页面右上角的创建委托
3、参数说明

  • 图中标注①:名称
  • 图中标注②:委托类型选择 云服务
  • 图中标注③:云服务选择 函数工作流 FunctionGraph
  • 图中标注④:期限选择永久
  • 图中标注⑤:权限选择 FunctionGraph Invoker

4、点击确认

创建触发器

1、按照下列图片,点击创建,参数可按照图示填入

进行测试

1、点击选择测试事件->配置测试事件 2、事件模板选择porn-image-analysis 3、点击保存 4、点击测试,查看测试结果

测试结果

构建前端Web

1、点击查看演示
2、下载前端代码包,并解压。 3、修改代码包中的文件/functiongraph/assets/config/apis.json中checkImage的值,更改为函数的APIG触发器的调用URL,这样前端页面就会发请求去触发您的函数执行了。 4、上传代码包中的文件到OBS桶中,并将该桶访问权限设置为公共读。因为上传的文件较多,建议您使用OBS Browser批量上传, 使用OBS Browser前,请先获取访问密钥
5、配置该桶为静态服务器,并设置入口文件为index.html。

完成