let param = {
api: 'businessLicense',
data: {
type: 'photo',
imgUrl: url,
}
}
wx.cloud.callFunction({
name: 'ocr',
data: param,
fail(e) {
console.log('云函数调用失败', name, param, e)
},
success: function (res) {
console.log(res)
}
})
exports.main = async (event, context) => {
switch (event.api) {
case "businessLicense":
return await cloud.openapi.ocr.businessLicense(event.data)
case "idcard":
return await cloud.openapi.ocr.idcard(event.data)
default:
return null
}
}
Error: cloud.callFunction:fail -404011 cloud function execution error. 云函数执行错误
url = https:
我们的图片不对外公开,所以要想访问,必须要被授权,所以才有Expire,Signature等签名相关的参数,有一定的有效期。
但我保证所有每次生成的url都可以正常访问,均能获取到图片。
我这个BUG不是必现的,而是偶现。我把必现和偶现的URL做了对比发现:
云函数执行失败的时候,url中的Signature参数都带有“+”
没有带“+”的时候能正常执行云函数
(签名可能会生成“+”)
可能是腾讯云函数那边判断传入的imgUrl参数校验的时候,写的不够合理,导致URL无效,但其实这个地址是能取到图片的。
你们可以在正常的图片地址后面增加任意参数:
url = url + "?a=+"
或者是经过urlEncode后的
url = url + "?a=%2B"
希望官方能尽快解决这个BUG,否则我们的业务会收到影响,总不能让我们开放文件访问权限,不进行签名吧?
额,你和另外2个人情况一样。。。