在小程序端,需要先把图片上传至,云存储
然后在云函数端,通过fileID将数据下载,通过buff来检测,
检测违规成功,也只是返回了图片违规标志!
为何,不在检测违规成功,直接将此违规内容通过fileID 直接删除掉!这个功能,为何不直接封装在检测成功的,回调函数内!
今天,在使用这个功能,在云函数中,先下载了buff,然后imgSecCheck检测,当errCode为87014时,cloud.deleteFile,将云存储中的文件删除,
然而,在调试的时候,一直出现错误!
检测违规内容,肯定是需要删除的,为何不直接封装起来呢?
我的代码如下:至今未调试成功!
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async(event, context) => {
// console.log(event.fileIDList)
const fileID = event.fileID
const res = await cloud.downloadFile({
fileID: fileID,
})
const buffer = res.fileContent
try {
var result = await cloud.openapi.security.imgSecCheck({
media: {
contentType: event.contentType,
value: buffer
}
})
if (err.errCode.toString() === '87014') {
const fileIDs = [fileID]
const resultx = await cloud.deleteFile({
fileList: fileIDs,
})
return {
data:resultx.fileList,
msg:"违规图片已删除"
}
} else {
return {
msg:"图片无违规",
data:result
}
}
} catch (err) {
return err
}
}
有闲着的老铁,帮忙看看!
小程序云函数这块,调试起来,是真让人头疼啊
if (err.errCode.toString() === '87014') //这里怎么没发现err是哪里赋值的?
也这样写过,但有问题,怀疑是刚上传完图片就接着安全检查之间时间太短;
建议改成上传buffer去验证,通过后再将buffer存入云存储。