服务端:A环境下的云函数在B环境中创建了文件!
- 当前 Bug 的表现(可附上截图)
如图,环境ID是xwjtest,返回结果中的fileID是xwj-1…下的文件。
在云开发后台看也是如此。这个png图片未出现在xwjtest的存储管理中,却出现在了xwj-1…的存储管理下
xwjtest下有服务器端云函数getQrcode(用于生成图片),但存储管理中没有文件。
xwj-1…下没有任何云函数,但存储管理中生成了由getQrcode生成的图片文件。
getQrcode云函数中特意指定了test环境,依然出现此bug
cloud.init({ env: 'xwjtest' }); |
- 预期表现
环境隔离
- 复现路径
小程序端调用服务器端的云函数,云函数的功能为创建一个图片文件
- 提供一个最简复现 Demo
// 小程序端 wx.cloud.callFunction({ name: 'getQrcode' , // 云函数名称 data: { // 小程序码所需的参数 page: "pages/index/index" }, complete: res => { // console.log('callFunction test result: ', res) this .setData({ // 获取返回的小程序码 qrcodeUrl: res.result.fileID }) } }) |
//服务器云函数 // 导入框架 const cloud = require( 'wx-server-sdk' ); const axios = require( 'axios' ); var rp = require( 'request-promise' ); cloud.init({ //上线时需调整为正式环境 env: 'xwjtest' }); /** * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端 * * event 参数包含 * - 小程序端调用传入的 data * - 经过微信鉴权直接可信的用户唯一标识 openid * */ // 云函数入口函数 exports.main = async(event, context) => { console.log(event); try { const AppID = 'AppIDxxxxxxxx' , AppSecret = 'AppSecretxxxxxxxxx' ; const getAccessTokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + AppID + '&secret=' + AppSecret; const resultValue = await rp(getAccessTokenUrl); const token = JSON.parse(resultValue).access_token; console.log( '------ TOKEN:' , token); // 请求小程序码,使用接口B const response = await axios({ method: 'post' , url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit' , responseType: 'stream' , params: { access_token: token }, data: { page: event.page, width: 430, scene: "id=" + event.userInfo.openId } }); return await cloud.uploadFile({ cloudPath: 'qrcode/openid/' + event.userInfo.openId + '.png' , fileContent: response.data }); } catch (err) { console.log( '>>>>>> ERROR:' , err) }
|
0基础初学者,弄的不对的地方,请各位大佬指出,以便我学习修正。谢谢!