关于imgSecCheck调用的问题,一些建议!可否添加?
发布于 8 年前 作者 jie60 9415 次浏览 来自 官方Issues

在小程序端,需要先把图片上传至,云存储

然后在云函数端,通过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
  }

}

有闲着的老铁,帮忙看看!

小程序云函数这块,调试起来,是真让人头疼啊

2 回复
    if (err.errCode.toString() === '87014')  //这里怎么没发现err是哪里赋值的?

也这样写过,但有问题,怀疑是刚上传完图片就接着安全检查之间时间太短;

建议改成上传buffer去验证,通过后再将buffer存入云存储。

回到顶部